C语言 access 函数详解:测试文件可访问性
access函数是C语言中的一个标准库函数,用于测试文件是否可访问。具体来说,它可以测试指定的文件路径是否存在,以及当前进程对该文件路径是否具有特定的权限(读、写、执行)。access函数的返回值为0表示文件存在且有相应权限,否则表示文件不存在或没有相应权限。
函数原型:
int access(const char *pathname, int mode);
参数说明:
pathname:要测试的文件路径。mode:要测试的权限,可以是以下值之一:F_OK:测试文件是否存在。R_OK:测试文件是否可读。W_OK:测试文件是否可写。X_OK:测试文件是否可执行。mode也可以是多个值的组合,例如R_OK | W_OK表示测试文件是否可读或可写。
返回值:
- 0:文件存在且有相应权限。
- -1:文件不存在或没有相应权限。
示例代码:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
int main() {
// 测试文件是否存在
if (access("test.txt", F_OK) == 0) {
printf("文件 test.txt 存在。\n");
} else {
printf("文件 test.txt 不存在。\n");
}
// 测试文件是否可读
if (access("test.txt", R_OK) == 0) {
printf("文件 test.txt 可读。\n");
} else {
printf("文件 test.txt 不可读。\n");
}
// 测试文件是否可写
if (access("test.txt", W_OK) == 0) {
printf("文件 test.txt 可写。\n");
} else {
printf("文件 test.txt 不可写。\n");
}
return 0;
}
注意:
- access函数只能测试文件本身的权限,不能测试目录的权限。
- access函数只能测试当前进程的权限,不能测试其他进程的权限。
- access函数不能用于测试文件的大小、类型等信息。
相关函数:
- stat函数:获取文件信息,包括权限、大小、类型等。
- chmod函数:修改文件权限。
- chown函数:修改文件所有者。
- fstat函数:获取打开文件的信息。
- fchmod函数:修改打开文件的权限。
- fchown函数:修改打开文件的所有者。
原文地址: https://www.cveoy.top/t/topic/m0Y2 著作权归作者所有。请勿转载和采集!