【发布时间】:2014-01-16 07:31:31
【问题描述】:
我在 O_APPEND | 中打开了一个名为“pranav”的文本文件。 O_CREAT模式如下图:
#include<unistd.h>
#include<fcntl.h>
#include<stdio.h>
main()
{
//FILE Descriptor fdes
/*Open file pranav.txt in write-only mode,
O_CREAT creates file if it does not exist*/
int fdes = open("pranav.txt",O_APPEND | O_CREAT );
//Error returns -1
if(fdes!=-1)
{
//To write on file
if((write(fdes,"Pranav",6))== -1)
write(2,"File_Writing_Error",18);
//To print on screen
else
write(1,"Done",4);
}
else
{
//Print "error" on screen
write(2,"File_Opening_Error",18);
}
close(fdes);
}
在 O_APPEND 模式下,它执行 write(2,"File_Writing_Error",18);语句,因此无法在文件上写入“Pranav”,但如果我使用 O_WRONLY 模式,则不会发生此错误并且程序成功运行
【问题讨论】:
-
使用
perror(linux.die.net/man/3/perror) 打印真正的错误信息 -
使用
perror()函数知道错误 -
感谢您增加了我的知识。它打印了错误:“Bad File Descriptor”
标签: c operating-system