5
int source = open("hi", O_CREAT | O_RDONLY);
int dest = open("resultfile", O_CREAT | O_RDWR | O_TRUNC);
FILE* source1 = fdopen(source, "r");
FILE* dest1 = fdopen(dest, "w+");
// outside of a testcase I would write something into 'resultfile' here
close(source);
close(dest);
fclose(source1);
fclose(dest1);
int sourcef = open("resultfile", O_RDONLY);
printf(strerror(errno)); // <--- Bad file descriptor
私は理由を理解していませんか?ストリームベースのIOをopen()とうまく組み合わせるにはどうすればよいですか?ミキシングのfdopen()およびオープン() - >不正なファイルディスクリプタ
私が扱っているライブラリは整数fdを受け入れます(ライブラリは内部的にはclose()を使って終了します)が、まだファイルを扱う必要があります。 (fread()、ftell()などのf()呼び出しがなくても、どうすれば適切に可能かを見てください。
ありがとうございました! fdopen()のマニュアルページがfreopen()とfopen()と混在しているため、慎重にマンページを読み込まなかった:/ – Blub