open() でファイルを開き、ファイル記述子を確認しましたが、問題ないようです (3)。しかし、この fd に書き込もうとすると、write() は -1 を返します。正しく表示されている文字列も印刷します。
errno = 9, "Bad file descriptor"
I checked my file descriptor and seems to be ok (3)
ファイル記述子が書き込み用に開かれていないようです。のドキュメントからwrite
:
EBADF fd が有効なファイル記述子ではないか、書き込み用に開かれていません。
標準ライブラリ stdio.h にある関数を使用します。fopen() を使用してファイルを開き、fprintf() を使用してファイルに書き込み、fclose() を使用してファイルを閉じます。例:
FILE *fh;
fh = fopen("test.txt","w");
fprintf(fh, "Hello World!\n");
fclose(fh);
このサイトは標準的な C プログラミングの非常に貴重なリソースなので、ブックマークしておきます (ヒント: 最初に確認してください ;) http://www.acm.uiuc.edu/webmonkeys/book/c_guide/