系统调用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