使用open()创建文件,但没有在C中修改该文件的权限
我正在用C语言创建一个文本文件使用open()创建文件,但没有在C中修改该文件的权限,c,file-permissions,C,File Permissions,我正在用C语言创建一个文本文件 fd = open("results.txt",O_CREAT|O_RDWR,S_IROTH); if (fd<0){ perror("open error"); abort(); } write(fd,msg,strlen(msg)+1); fd=open(“results.txt”,O|u CREAT | O|u RDWR,S|u IROTH); 如果(fd使用fd=open(“results.t
fd = open("results.txt",O_CREAT|O_RDWR,S_IROTH);
if (fd<0){
perror("open error");
abort();
}
write(fd,msg,strlen(msg)+1);
fd=open(“results.txt”,O|u CREAT | O|u RDWR,S|u IROTH);
如果(fd使用fd=open(“results.txt”,O|u CREAT | O_RDWR,0777);
而不是
fd = open("results.txt",O_CREAT|O_RDWR,S_IROTH);
使用fd=open(“results.txt”,O|u CREAT|O|u RDWR,0777);
而不是
fd = open("results.txt",O_CREAT|O_RDWR,S_IROTH);
使用fd=open(“results.txt”,O|u CREAT|O|u RDWR,0777);
而不是
fd = open("results.txt",O_CREAT|O_RDWR,S_IROTH);
使用fd=open(“results.txt”,O|u CREAT|O|u RDWR,0777);
而不是
fd = open("results.txt",O_CREAT|O_RDWR,S_IROTH);
标志中应该有问题,因为您正在创建文件,您正在使用标志
O_CREAT
O_创造
所以现在您需要指定访问模式,如手册页中所述
S_IROTH
S_IROTH
所以你让它只为其他人读。所以当你再次打开它时,你就不能写了。
因此,您还应该定义写入模式,以及为用户读取等。
S_IRUSR | S_IROTH | S_IWUSR
S|u IRUSR | S|IROTH | S|u IWUSR
有关详细信息,请参阅手册页。标志中应该有问题,因为您正在创建文件,正在使用标志
O_CREAT
O_创造
所以现在您需要指定访问模式,如手册页中所述
S_IROTH
S_IROTH
所以你让它只为其他人读。所以当你再次打开它时,你就不能写了。
因此,您还应该定义写入模式,以及为用户读取等。
S_IRUSR | S_IROTH | S_IWUSR
S|u IRUSR | S|IROTH | S|u IWUSR
有关详细信息,请参阅手册页。标志中应该有问题,因为您正在创建文件,正在使用标志
O_CREAT
O_创造
所以现在您需要指定访问模式,如手册页中所述
S_IROTH
S_IROTH
所以你让它只为其他人读。所以当你再次打开它时,你就不能写了。
因此,您还应该定义写入模式,以及为用户读取等。
S_IRUSR | S_IROTH | S_IWUSR
S|u IRUSR | S|IROTH | S|u IWUSR
有关详细信息,请参阅手册页。标志中应该有问题,因为您正在创建文件,正在使用标志
O_CREAT
O_创造
所以现在您需要指定访问模式,如手册页中所述
S_IROTH
S_IROTH
所以你让它只为其他人读。所以当你再次打开它时,你就不能写了。
因此,您还应该定义写入模式,以及为用户读取等。
S_IRUSR | S_IROTH | S_IWUSR
S|u IRUSR | S|IROTH | S|u IWUSR
有关详细信息,请参阅手册页。您能否显示err\u sys
的实现情况?是否有可能open
失败,但您没有记录此操作或退出程序?@simonc我刚刚更新了我的问题。您能否显示err\u sys
的实现情况?是否有可能open
失败,但您没有记录此操作或退出退出你的程序?@simonc我刚刚更新了我的问题你能展示你的err\u sys
实现吗?有没有可能open
失败,但你没有记录这一点或退出你的程序?@simonc我刚刚更新了我的问题你能展示你的err\u sys
实现吗?有没有可能open
失败但你没有记录这个或退出你的程序吗?@simonc我刚刚更新了我的问题是0777 S_IROTH的int值或类似的东西?检查你的头文件中,它应该是S_IRWXOIs 0777 S_IROTH的int值或类似的东西?检查你的头文件中,它应该是S_IRWXOIs 0777 S_IROTH的int值或类似的东西检查你的头文件,它应该是S_IRWXO 0777,S_IROTH的int值或者类似的东西?检查你的头文件,它应该是S_IRWXO