日期:2014-05-16  浏览次数:20761 次

mkdir函数参数问题,创建目录权限不正确
用mkdir()函数创建一个目录,比如设置参数为0755,但为什么实际创建的目录的权限不是755,还有一个特殊权限t,网上查了下说是粘滞键,谁能指点下?

------解决方案--------------------
mkdir 中mode设置的值与本进程的umask共同生成了这个文件的权限
比如你设置的mode为0755,但进程的umask为022,则最后生成0755-0022=0733

所以你得考虑进程的umask(文件权限屏蔽值)
------解决方案--------------------
文件模式创建屏蔽字是可以改的 
#include <sys/stat>
mode_t umask(mode_t cmask);
文件模式创建屏蔽字被设置成为1的位,在创建文件时该位就会被关闭