c - 系统调用 open() 权限

标签 c

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

关于c - 系统调用 open() 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13168964/

相关文章:

c - 从 C 语言的电话簿代码的文本文件中读取信息

C - 当我使用 fopen() 创建文件时,该文件位于哪里?

c++ - 在 C 中返回堆栈数据;它是否正确取消分配?

c - 双指针作为函数参数

c - 磁盘 I/O 期间幕后发生了什么?

c - 复制名称中包含双引号的文件时,Mac OS 10.7.5 BSD copyfile() EINVAL

c - 为什么我的代码只返回一个函数?

c - 需要帮助在另一个进程中搜索字节数组 - C windows 编程

c - SYSCALL() 在 Linux 中在哪里实现?

c - 如何将结构初始化为空?