c - linux mkdir函数无法授予完全权限

标签 c linux permissions mkdir

我正在测试mkdir创建新目录的函数:

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

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

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

如您所见,我尝试授予该目录的完全权限,但出现的结果是 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) ,有什么想法吗?

最佳答案

来自man 2 mkdir:

The argument mode specifies the permissions to use. It is modified by the process's umask in the usual way: the permissions of the created directory are (mode & ~umask & 0777).

我建议您查看您的 umask - 它可能设置为 0022。尝试 chmod post-mkdir

关于c - linux mkdir函数无法授予完全权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25937186/

相关文章:

android - 如果安装到系统分区,则应用程序在启动时崩溃

c - 在c中查找数组中的重复值

C:为什么我在一种情况下出现段错误,而在另一种情况下却没有?

linux - 如果第一行包含一些文本,如何删除一行中的三行? (AWK)

linux - 更改搜索目录时文件的权限

ubuntu - 更改 redis 转储的默认文件权限

c - 获取所有 Xorg 显示的列表

c++ - 在 sizeof(++n) 表达式中不调用增量运算符

linux - tar zxf 与 -xvf 之间的区别

linux - 对目录中的所有文件运行可执行文件并获取与原始文件对应的不同输出文件