私がこれを書いた:のLinuxプログラミング:デバイスファイルへの書き込み
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <mtd/mtd-user.h>
#include <errno.h>
int main(void)
{
int fd;
char buf[4]="abc";
fd = open("/dev/mtd0", O_RDWR);
lseek(fd, 1, SEEK_SET);
write(fd, &buf, 4);
close(fd);
perror("perror output:");
return 0;
}
ファイルは/ dev/mtd0はnandsimカーネルモジュールを使用して作成され、そして
mtdinfo /dev/mtd0
を実行するには、私が実行して意味のあるoutput.Afterを得ました私のプログラムに誤りがあった場合
perror output:: Invalid argument
:私のプログラムは、それが出力ですか?
エラー報告が間違っています。個々のシステムコール/ライブラリ関数の戻り値をチェックし、関数呼び出しを介さずに 'perror' _right after_ a _failed_呼び出しを使う必要があります。書かれているように、あなたが持っている 'perror'呼び出しは、まったく情報を与えません。 – Mat