0
我写下面的代码,试图在Linux上使用0777模式创建一个目录:为什么我的程序不能用mkdir系统调用设置0777模式?
#include <sys/stat.h>
#include <sys/types.h>
int main() {
mkdir("/tmp/mkdir-test", 0777);
return 0;
}
但实际上,新目录有0755模式。
# stat /tmp/mkdir-test
File: `/tmp/mkdir-test'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 802h/2050d Inode: 1772304 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-09-27 20:23:54.000000000 -0700
Modify: 2016-09-27 20:23:54.000000000 -0700
Change: 2016-09-27 20:23:54.000000000 -0700
有人可以解释这一点吗?该程序如何创建一个真正的0777模式目录?
谢谢!有用! – walker
甚至在'mkdir(3)'文档中记录了@walker。例如,Linux版本说:“新目录的文件权限位应该从'mode'初始化。**'mode'参数的这些文件权限位应该由进程'文件创建掩码**'修改(强调增加)。 –
@JohnBollinger我只是试图在mkdir之后调用chmod来解决问题。它也有效。我的问题是两种方式有什么不同?哪种方式更受推荐? – walker