2013-03-26 187 views
-3

我用open()打開一個文件,我檢查了我的文件描述符,似乎沒問題(3)。 但是當我嘗試在這個fd上寫入時,write()返回-1。 我也打印我的字符串,顯示正確。調用write()失敗未知的原因

errno = 9, "Bad file descriptor" 
+5

代碼可能會有所幫助。 – 2013-03-26 19:38:22

+0

是否用「寫入」選項打開它?你的文件是否有寫入權限? – Mike 2013-03-26 19:39:40

回答

0
I checked my file descriptor and seems to be ok (3) 

你的文件描述符顯然沒有打開,無法寫入。從文檔write

EBADF fd是不是一個有效的文件描述符或者沒有打開,無法寫入。

0

我會使用標準庫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/