これは、機能的に意味します。fileno を使用して FILE* を fd に変換していますが、エラーなしで返されますが、fileno から返された値に対して pread を使用すると、不適切なファイル記述子エラーが発生します。いいえ:
FILE* fin;
FILE* fout;
int fd, result;
fd = open("path", O_RDWR);
// Do stuff with fin and fout
// fout is the file with all of the stuff I want to copy to the fd
fd = fileno(fout);
result = pread(fd, buf, size, offset); // Bad file descriptor--returns a 9
pread でこのエラーが発生する原因がわかりません。それが私を狂わせています。