2017-10-08 38 views
-1
int fd = open("float.txt", O_CREAT | O_WRONLY, 0600); 

我知道0600與權限有關,但它究竟如何工作?open()系統調用中的第三個參數如何工作?

+1

你從字面上重新寫你要問的問題完全不同的東西后,我給你的回答你原來的問題。下一次,只要接受答案(如果它解決了你的問題),然後問一個單獨的問題進行跟進。 – selbie

+1

您需要了解的有關unix文件權限值的所有信息都是[here](http://man7.org/linux/man-pages/man2/chmod.2.html)。 '0600'值是'0400'(所有者擁有讀取權限)與'0200'(所有者具有寫入權限)的八進制聯合。 – selbie

回答

2

您需要使用的open 3 PARAM版本使用O_CREAT標誌時:

the man page for open

INT開放(常量字符*路徑,詮釋標誌);

int open(const char * pathname,int flags,mode_t mode);

mode參數指定在創建新文件時應用的文件模式位。當在標誌中指定了OLE_CREAT或O_TMPFILE時,必須提供此參數。如果既沒有指定O_CREAT 也沒有指定O_TMPFILE,則模式被忽略。

試試這個:

int fd = open("float.txt", O_CREAT | O_WRONLY, S_IRUSR|S_IWUSR); 
相關問題