2013-03-26 183 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/