以下是我的代码:
#include <iostream>
#include <fcntl.h>
#include <unistd.h>
using namespace std;
int main()
{
int filedesc = open("testfile.txt", O_RDWR | (O_APPEND |O_CREAT) ,S_IRWXO);
if (filedesc < 0) {
cout<<"unable to open file";
return -1;
}
if (write(filedesc, "This will be output to testfile.txt", 36) != -1) {
cout<<"writing";
close( filedesc );
}
return 0;
return 0;
}
如果我第二次运行相同,则o / p是“无法打开文件”。 我做错了吗?
答案 0 :(得分:5)
这是一个许可问题
尝试更改
S_IRWXO
到
S_IRWXU
它会正常工作
S_IRWXO
读取,写入,执行/搜索其他人
参考http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html