我正在用C语言创建一个文本文件
fd = open("results.txt",O_CREAT|O_RDWR,S_IROTH);
if (fd<0){
perror("open error");
abort();
}
write(fd,msg,strlen(msg)+1);
但是当我试图在其中写下其他内容时,我没有权限。有人可以帮忙吗?
答案 0 :(得分:2)
使用fd=open("results.txt",O_CREAT|O_RDWR,0777);
而不是
fd = open("results.txt",O_CREAT|O_RDWR,S_IROTH);
答案 1 :(得分:1)
标志中应该有问题,因为你正在创建文件,你正在使用标志
O_CREAT所以现在你需要指定访问模式,如手册页中所述。你指定了
S_IROTH所以你只为其他人做了它。因此,当你再次打开它时,你不能写。 所以你也应该定义写模式,也为用户等读取。
S_IRUSR | S_IROTH | S_IWUSR有关详细信息,请参见手册页。