作者:mobiledu2502863347 | 来源:互联网 | 2023-07-13 10:49
如何检查文件在C中是否具有读取权限?在POSIX中使用access(2)。在标准C中,你可以做的最好的事情是尝试用fopen()打开它,看它是否成功。如果fopen()返回NULL
如何检查文件在C中是否具有读取权限?
在POSIX中使用access(2)
。 在标准C中,你可以做的最好的事情是尝试用fopen()
打开它,看它是否成功。
如果fopen()
返回NULL
,您可以尝试使用errno
来区分“文件不存在”( errno == ENOENT
)和“权限被拒绝”( errno == EACCES
)情况 – 但遗憾的是这两个errno
值只是由POSIX定义。
(即使在POSIX上,在大多数情况下,最好的办法是尝试打开文件,然后查看失败的原因,因为使用access()
引入明显的竞争条件)。
使用access()函数:
if (access(pathname, R_OK) == 0) { /* It's readable by the current user. */ }
如果文件不存在,则errno
将设置为ENOENT
如果存在,则为EACCES
,但当前用户无法访问。 有关更多错误代码,请参见手册页 。
以上就是c/c++开发分享c读取文件的权限相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(编程笔记)。