Linux c语言 查看文件是否存在\查看文件大小

本文介绍了两种方法来检查文件是否存在及获取其大小:使用 access 函数判断文件是否可读及是否存在,并利用 fseek 和 ftell 函数或 stat 结构体获取文件大小。

查看文件是否存在

#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 ;
}
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值