系统调用open()权限

时间:2012-10-31 23:39:13

标签: c

我使用系统调用open()打开文件。

if ((fd2 = open(logFile, O_RDWR |O_APPEND | O_CREAT ), 0666) == -1)
    DieWithError("open() failed");

我的文件FTP_track.log创建没有任何问题。问题是虽然我有模式0666,它是所有人都可以读写的,但我无法在unix中打开文件。我必须更改文件属性的权限才能读写。

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:2)

您的行的问题是括号不匹配。您的表达式被解析为fd2 = open(), 0666。在C语言中,表达式expr1, expr2的值为expr2,因此您的if语句基本上表示fd2 = 0666