创建文件并分配权限

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)

Tho*_*mas 5

我想你可能需要在调用之前更改umask creat:

umask(0000);
Run Code Online (Sandbox Code Playgroud)

man 2 umask.默认的umask通常是0022,这将使0777和0755之间的差异完全消失.