查看文件是否存在
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main(){
/*
R_OK 可读
W_OK 可写
X_OK 可执行
F_OK 文件存在
return : 0-> success -1->fail
失败时设定errno
EINVAL : 模式值(mode)无效
EACCES : 文件或路径名中包含的目录不可访问
ELOOP : 解析路径名中太多符号链接
ENAMETOOLONG : 路径名太长
ENOENT : 路径名中的目录不存在或是无效符号链接
ENOTDIR : 路径名中当作目录的组件不是目录
EROFS : 文件系统只读
EFAULT : 路径名指向可访问的空间外
EIO : 输入输出错误
ENOMEM : 不能获取足够的内核内存
ETXTBSY : 对程序写入出错
*/
int ret = access("./ini", F_OK | R_OK) ;
if(ret != 0){
printf("bye bye\n") ;
}
return 0 ;
}
查看文件大小
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main(){
// 1.
FILE * fp = fopen("./ini", "r+") ;
fseek(fp, 0, SEEK_END) ;
printf("%d\n", ftall(fp)) ;
fseek(fp, 0, SEEK_SET) ;
fclose(fp) ;
// 2. 需要 #include <fcntl.h>
struct stat st ;
stat("./ini", &st) ;
printf("%d\n", st.st_size) ;
return 0 ;
}
本文介绍了两种方法来检查文件是否存在及获取其大小:使用 access 函数判断文件是否可读及是否存在,并利用 fseek 和 ftell 函数或 stat 结构体获取文件大小。
5万+





