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