gpt4 book ai didi

c++ - mkdir 系统调用创建权限 0755 而不是 0777

转载 作者:太空狗 更新时间:2023-10-29 20:54:37 24 4
gpt4 key购买 nike

我在使用 mkdir 系统调用时获得的权限有问题。我知道我说得对,它是八进制的,所有这些。我已经测试过它,模式输入是一个我可以用它做数学运算的整数,绝对是十进制的 511。

#include <sys/stat.h>
#include <sys/types.h>
#include <cstdlib>

int main (int argc, char* argv[]) {
if (mkdir(argv[argc-1], 0777) == -1) {
perror(argv[0]);
return EXIT_FAILURE;
} // if
return EXIT_SUCCESS;
} // main

但是当我创建目录并检查权限时,它总是 0755 而不是 0777。

Access: (0755/drwxr-xr-x)

当我使用 mkdir 实用程序或 chmod 或任何它可以完美设置为 0777 时。只是系统调用不起作用。

它也适用于较小权限,比如我将模式设置为 0111。

最佳答案

你的掩码是 0022?

检查它

$ umask

从你的 shell。

在这种情况下,将 umask 设置为零

$ umask 0

然后用你的程序重试

关于c++ - mkdir 系统调用创建权限 0755 而不是 0777,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38547768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com