在我的C程序如下行應該提供的所有/組/用戶讀取和寫入權限mkfifo文件權限沒有被正確執行
mkfifo("/tmp/dumbPipe", 0666)
但是,一旦我執行的代碼,並檢查了寫入的權限非位被設置,我結束了
prw-r--r--
業主是一樣的,這是一個問題,因爲我在tmp目錄中創建管道?當我從cmd行運行chmod 666時,所有權限都可以正確設置。
在我的C程序如下行應該提供的所有/組/用戶讀取和寫入權限mkfifo文件權限沒有被正確執行
mkfifo("/tmp/dumbPipe", 0666)
但是,一旦我執行的代碼,並檢查了寫入的權限非位被設置,我結束了
prw-r--r--
業主是一樣的,這是一個問題,因爲我在tmp目錄中創建管道?當我從cmd行運行chmod 666時,所有權限都可以正確設置。
這是一個沒有意見後,只是引述手冊。 Brievity等從人3 mkfifo
引用:
它是由過程的umask以通常的方式修改:所創建的文件的權限是(模式&〜umask的)。
從人2的umask報價
的進程的umask典型的默認值是S_IWGRP | S_IWOTH(八進制022)。在作爲模式參數 打開指定(2)通常情況下:
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH (octal 0666) when creating a new file, the permissions on the resulting file will be: S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH (because 0666 & ~022 = 0644; i.e., rw-r--r--).
薩拉姆, 我知道這是晚,但對於其他用戶,我選擇寫此評論 即使你精確0666作爲許可,您應該知道,有一個是被稱爲「進程的文件模式創建」的另一個因素,所以問題是:
如何改變當前的進程文件模式創建?
答:在你的程序的開頭使用的umask(許可) - 並給予0000許可
http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
這應該幫助。