linux mkdir函数无法授权完全权限

man*_*ang 4 c linux permissions mkdir

我正在测试mkdir函数来创建一个新目录:

folder =  mkdir("./linux", 511);
Run Code Online (Sandbox Code Playgroud)

要么

 folder = mkdir("./linux", 0777);
Run Code Online (Sandbox Code Playgroud)

要么

folder = mkdir("./linux", S_IRWXU | S_IRWXG | S_IRWXO);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我尝试授权该目录的完全权限,但这里是提出的ls -l | grep linux:

drwxr-xr-x 2 manuzhang manuzhang 4096 2012-01-04 06:53 linux
Run Code Online (Sandbox Code Playgroud)

为什么我不能授权群组和其他人的写入权限?

更新:
奇怪的是,正如你们告诉我的那样,我试过了umask.它与两种umask(S_IWGRP)umask(S_IWOTH)未能umask(S_IWGRP | S_IWOTH)任何想法?

Kri*_*ass 6

来自man 2 mkdir:

参数模式指定要使用的权限.它以通常的方式由进程的umask修改:创建的目录的权限是(mode&〜umask&0777).

我建议你看看你的umask - 它可能会被设置为0022.试试一个chmod帖子mkdir.


sbe*_*ezb 0

检查umask功能:man 2 umask