为什么stat()返回-1,即使文件存在[RHEL 7.2]

时间:2017-02-02 17:01:22

标签: stat

我正在为Apache Server开发一个模块。在那,我试图从路径/ tmp / _clusterMemberName /使用 stat(const char * filename,struct stat * buf)函数读取文件。我的问题是stat()函数返回-1,即使文件存在于路径上。如果我将文件位置从 / tmp / _clusterMemberName / 更改为 / opt / ,则stat()函数正常工作。请帮我找出原因。

1 个答案:

答案 0 :(得分:0)

最可能的原因是/tmp无法访问。

您需要查看stat返回的errno值。如果是EACCES,则原因是用户无权访问/tmp。如果是EPERM,原因可能是SELinux政策阻止httpd访问/tmp。如果您使用的是SELinux,请确保您已了解httpd_selinux联机帮助页。

您可以通过以下方式启用httpd/tmp的访问权限。

setsebool httpd_tmp_t 1

并使用

进行更改
setsebool -P httpd_tmp_t 1