我想创建一个名为“common.txt”的文件,如果该文件不存在,则附加一个字符。
这是我的相关代码:
char buffer3[2];
buffer3[0]='Z';
buffer3[1]='\0';
//open
filed=open("common.txt", O_CREAT | O_APPEND, O_WRONLY);
//append
int result=write(filed, buffer3, 2);
if(result==-1){
cout << "WRITE FAILED!" << endl;
}else{
cout << "WRITE SUCCEEDED!" << endl;
}
//close
close(filed);
write()继续返回-1。我为write()的第三个参数尝试了1,2和3的值,但这也没有用。也许我的open()标志不正确。
答案 0 :(得分:4)
您错误地使用了open()
。应该更像这样:
open("common.txt", O_CREAT | O_APPEND | O_WRONLY, 0666);
您缺少创建文件时必需的mode
参数(省略它是未定义的行为!)。或者更确切地说,您将O_WRONLY
作为模式传递,这是不正确的,并且您未能传递flags
中的任何强制读/写标记。
当然,您需要添加open()
实际上成功的检查。