Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 为什么每次使用EAGAIN时open()都会失败?_Linux_Apache2_Strace - Fatal编程技术网

Linux 为什么每次使用EAGAIN时open()都会失败?

Linux 为什么每次使用EAGAIN时open()都会失败?,linux,apache2,strace,Linux,Apache2,Strace,为什么像Apache这样的程序无法打开普通文件?在strace下运行它会显示: open("access.log", O_WRONLY|O_CREAT|O_APPEND|O_CLOEXEC, 0666) = 11 11代表EAGAIN或eWoldBlock 其中: $ ls -l access.log -rw-rw-rw- 1 root root 2 Jun 9 17:52 access.log 如果我su作为www-data我可以安全地写入文件。11是文件描述符而不是错误代码。这意味着您

为什么像Apache这样的程序无法打开普通文件?在
strace
下运行它会显示:

open("access.log", O_WRONLY|O_CREAT|O_APPEND|O_CLOEXEC, 0666) = 11
11
代表
EAGAIN
eWoldBlock

其中:

$ ls -l access.log
-rw-rw-rw- 1 root root 2 Jun  9 17:52 access.log

如果我
su
作为
www-data
我可以安全地写入文件。

11
是文件描述符而不是错误代码。这意味着您看到的
open
调用已成功,但未失败。如果
open
失败,它将返回
-1
,strace将显示如下内容:

open("access.log", O_RDONLY)            = -1 ENOENT (No such file or directory)