1
私は私のユーザースペースアプリケーションを実行したときに、私は以下のエラーを持っていました。開いているcharデベロッパーファイルのioctlエラー
のioctl:ここでは、デバイスのために不適切なioctlの
は、コードスニフ..です
fd = open_drvfile();
if(ioctl(fd, IOCTL_MSR_CMDS, (long long)msr_start) == -1) {
perror("ioctl:");
exit (0);
}
とopen_drvfile()char型のファイル(作成して開く)だけオープン以下のようになる。
fd = open("/dev/" DEV_NAME, O_RDWR|O_CREAT);
if (fd == -1) {
perror("Failed to open /dev/" DEV_NAME);
}
return fd;
私はこれを間違えたいくつかの点をすることができますか?
私はあなたが何をしようとしているのかよく分かりませんが、質問のタイトルでcharデバイスを参照しているので、open()の下のO_CREATフラグはあまり意味がありません。 'open()'の前に 'mknod()'を使ってcharデバイスを作成しましたか? – pah
私はファイルを作成して開くためにopen()を使用しています(ファイルが存在しないため)。私はこれが間違っていたと思う。あなたの答えを見た後、私はmknod()を使ってファイルを作成し、O_CREATを削除しました。今は期待通りに動作しています。ありがとう。 –
私は答えを投稿しますので、他の人に役立つかもしれません:) – pah