为什么像Apache这样的程序无法打开普通文件?在strace
下运行它会显示:
open("access.log", O_WRONLY|O_CREAT|O_APPEND|O_CLOEXEC, 0666) = 11
11
代表EAGAIN
或EWOULDBLOCK
其中:
$ ls -l access.log
-rw-rw-rw- 1 root root 2 Jun 9 17:52 access.log
如果我su
为www-data
我可以安全地写入文件。
答案 0 :(得分:2)
11
是文件描述符而不是错误代码。这意味着您看到的open
次呼叫成功并未失败。如果open
失败,它将返回-1
,而strace将显示如下内容:
open("access.log", O_RDONLY) = -1 ENOENT (No such file or directory)