我使用系統調用open()
打開一個文件。系統調用open()權限
if ((fd2 = open(logFile, O_RDWR |O_APPEND | O_CREAT), 0666) == -1)
DieWithError("open() failed");
我的文件是FTP_track.log創建沒有任何問題。問題是,雖然我有模式0666
,這是讀寫所有,我無法在Unix中打開文件。我必須將文件屬性的權限更改爲讀取和寫入。
任何想法?謝謝。
我使用系統調用open()
打開一個文件。系統調用open()權限
if ((fd2 = open(logFile, O_RDWR |O_APPEND | O_CREAT), 0666) == -1)
DieWithError("open() failed");
我的文件是FTP_track.log創建沒有任何問題。問題是,雖然我有模式0666
,這是讀寫所有,我無法在Unix中打開文件。我必須將文件屬性的權限更改爲讀取和寫入。
任何想法?謝謝。
您的線路的問題是括號不匹配。你的表情被解析爲fd2 = open(), 0666
。在C中,表達式expr1, expr2
的值爲expr2
因此,您的if
聲明基本上表示fd2 = 0666
。
同意括號錯誤;不同意分析;賦值優先級高於逗號,所以它是'fd2 = open(...)',然後0666是與-1比較的值。 –
謝謝!你是對的......它很奇怪,文件創建正確,我沒有錯誤,再次感謝。 – Kelis
可能是您的umask禁止爲所有人寫入權限。 –