2017-04-10 54 views
0

所以我想實現這個linux命令mkdir -m(權限模式)的目錄名。像mkdir -m 444一樣,應該創建一個具有444權限的文件夾名稱a。C++用mkdir()創建目錄並分配他們的權限

我試圖做的是

for (int i = 3; i <argc; ++i) { 
     mkdir(argv[i], *argv[2]); 
} 

for (int i = 3; i <argc; ++i) { 
     mkdir(argv[i], 0775); 
     chmod(argv[i], *argv[2]); 
} 

但相反,它會使不同的訪問文件夾,如0064 任何幫助將是非常讚賞

+0

提示:* argv [2]'是什麼類型? – aschepler

+0

[linux mkdir函數可能重複無法授權完整權限](http://stackoverflow.com/questions/8719867/linux-mkdir-function-cant-authorize-full-permission) –

+0

@aschepler char? –

回答

0

有一個看看下面的問題,看看它是否有幫助:

linux mkdir function can't authorize full permission

底線?在shell中檢查umask,這可能會限制您的權限。

+0

那麼我試着調用umask(0);它仍然不起作用。 –

+0

@jamesjung - 在你運行你的程序的shell中,當你執行'umask'時,它顯示了什麼? –

+0

其實...我認爲使用* argv [2]是錯誤的...所以我試圖做的是,因爲當我運行文件名mkdir.cpp我會做類似./mkdir -m 0444 direcotryname和由於文件權限(數字)存儲在argv [2]中,我試圖使用* argv [2]作爲權限並創建目錄,如mkdir(argv [i],* argv [2]); –