Joh*_*ohn 1 c posix file-permissions
似乎我把PERMS所创建的文件具有相同的权限 - rwx rx rx
我尝试了755和777,权限保持不变.
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<unistd.h>
#include<sys/stat.h>
#define PERMS 0777
int main(int argc, char *argv[])
{
int createDescriptor;
char fileName[15]="Filename.txt";
if ((createDescriptor = creat(fileName, PERMS )) == -1)
{
printf("Error creating %s", fileName);
exit(EXIT_FAILURE);
}
if((close(createDescriptor))==-1)
{
write(2, "Error closing file.\n", 19);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想你可能需要在调用之前更改umask creat:
umask(0000);
Run Code Online (Sandbox Code Playgroud)
见man 2 umask.默认的umask通常是0022,这将使0777和0755之间的差异完全消失.