c语言_access函数
时间: 2024-01-20 19:04:25 浏览: 29
access函数是C语言中的一个函数,其函数原型为:
```c
int access(const char *path, int mode);
```
access函数用于检查指定路径的文件是否存在,并且检查当前进程是否具有对该文件的访问权限。它的第一个参数path是要检查的文件路径,第二个参数mode是要进行的检查类型,包括以下几种:
- F_OK:检查文件是否存在
- R_OK:检查文件是否可读
- W_OK:检查文件是否可写
- X_OK:检查文件是否可执行
当检查成功时,函数返回0。如果检查失败,则返回-1,并且设置errno变量来指示错误类型。例如,如果文件不存在,errno会被设置为ENOENT(文件不存在)。
以下是一个示例代码,它使用access函数检查一个文件是否存在并且是否可读:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
int main()
{
char *file_path = "/home/user/test.txt";
int result;
result = access(file_path, F_OK);
if (result == 0)
{
printf("File exists\n");
}
else if (errno == ENOENT)
{
printf("File does not exist\n");
}
else
{
printf("Error: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
result = access(file_path, R_OK);
if (result == 0)
{
printf("File is readable\n");
}
else if (errno == EACCES)
{
printf("File is not readable\n");
}
else
{
printf("Error: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
return 0;
}
```