在C++中,如何确定程序对文件具有只读访问权限还是读写访问权限?我查找了boost文件系统库,但仍未找到可帮助我的内容。目前,我考虑打开文件,尝试在内部进行写操作并检查错误,但这似乎不是一个非常适当的做法。有任何线索吗?注:需要跨平台。
系统调用是大多数运行时库完全支持的,
#include <unistd.h>
if (0 == access (char *pathname, int mode))
// permission is granted
其中mode为F_OK
表示测试文件是否存在,或者是由一个或多个R_OK
、W_OK
和X_OK
按位或组成的掩码。
说到底,测试你是否能在现代操作系统上写入数据到文件的唯一方法是尝试实际写入。在测试权限和实际写入之间,许多事情可能已经发生在文件中。