在C ++中,我如何确定程序是否具有对文件的只读访问权限或读写权限?我搜索了boost文件系统库,但我还没有找到帮助我的东西。现在我想打开文件,尝试写入内部并检查错误,但这似乎不是一个非常合适的方法。
有任何线索吗?
编辑:它需要跨平台
答案 0 :(得分:5)
在一天结束时,测试是否可以将数据写入现代操作系统中的文件的唯一方法是实际尝试编写它。在许可测试和实际写入测试之间,文件可能发生了很多事情。
答案 1 :(得分:4)
大多数运行时库完全支持的系统调用是
#include <unistd.h>
if (0 == access (char *pathname, int mode))
// permission is granted
其中模式是F_OK
来测试文件的存在,或者是由R_OK
,W_OK
中的一个或多个的按位OR组成的掩码,以及X_OK
。