c - umask 不能在 C 代码中工作

标签 c umask

我编写了一个 c 代码,旨在在根目录下创建一个文件。

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>

const char *path="/";
int main(){
    FILE *fp;
    umask(0);
    chdir(path);

    fp=fopen("test.txt","w+");
    fclose(fp);

    return 0;
}

编译没有错误,但是当我执行文件时,出现以下错误:

kwagjj@kwagjj-Inspiron-3420:~$ gcc -Wall a2.c -o a2
kwagjj@kwagjj-Inspiron-3420:~$ ./a2
Segmentation fault (core dumped)

我怎么用错了umask函数?

最佳答案

我的钱花在 fopen() 失败(可能是由于权限不足)并返回 NULLfclose(NULL) causing the segfault

关于c - umask 不能在 C 代码中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25700519/

相关文章:

使用 open() 或 creat() 创建的文件设置的权限比我要求的要少

c - 如何给每个人写权限?

cURL 终端命令成功执行,而 libcurl 程序没有

go - 使用 os.O_CREATE 时读取默认 FileMode

linux - 为什么/etc/login.defs 中的 UMASK 设置不被接受?

c - 为什么我在写入数组时遇到问题

linux - FileZilla 中的 SFTP 上传导致文件权限为 0000

c - 使用双指针将数组传递给函数

在 struct 中为 char 数组创建指针大小的内存

c - 如何在C中使用asm函数