linux c 判断文件是否存在
时间: 2023-09-02 08:09:51 浏览: 204
在 Linux C 中判断文件是否存在可以使用 access 函数来实现。access 函数的原型如下:
```
#include <unistd.h>
int access(const char *pathname, int mode);
```
其中,pathname 是文件的路径,mode 是文件的访问权限。如果文件存在且具有指定的访问权限,则返回 0,否则返回 -1 并设置 errno。
例如,判断文件 /home/user/test.txt 是否存在可以使用以下代码:
```c
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
int main() {
char *filename = "/home/user/test.txt";
if (access(filename, F_OK) == 0) {
printf("%s exists.\n", filename);
} else {
if (errno == ENOENT) {
printf("%s does not exist.\n", filename);
} else {
printf("Error: %s\n", strerror(errno));
}
}
return 0;
}
```
其中,F_OK 是 access 函数的一个常量,表示判断文件是否存在。如果 access 函数返回 0,则表示文件存在;如果返回 -1,则需要通过 errno 来判断错误原因。如果 errno 的值为 ENOENT,则表示文件不存在。
阅读全文