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

我正在testingmkdir函数来创build一个新的目录:

 folder = mkdir("./linux", 511); 

要么

  folder = mkdir("./linux", 0777); 

要么

 folder = mkdir("./linux", S_IRWXU | S_IRWXG | S_IRWXO); 

正如你所看到的,我尝试授权给这个目录的完整权限,但是这里是ls -l | grep linux ls -l | grep linux

 drwxr-xr-x 2 manuzhang manuzhang 4096 2012-01-04 06:53 linux 

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

更新
奇怪的事情,正如你们告诉我,我尝试了umask 。 它可以与umask(S_IWGRP)umask(S_IWOTH)umask(S_IWGRP | S_IWOTH) 失败 ,有什么想法?

Solutions Collecting From Web of "linux mkdir函数无法授权完全权限"

man 2 mkdir

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

我建议你看看你的umask – 它可能设置为0022 。 尝试一个chmod post- mkdir

mkdiropen这样的系统调用设置的权限总是被当前进程的umask屏蔽。 您可以使用umask()函数更改当前的umask; 一定要把它放回去。

检查umask函数: man 2 umask