linux系统中怎么判断文件是否存在
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,linux下判断文件存不存在的方法:1、stat系列函数stat函数用来返回与文件有关的结构信息。stat系列函数有三种情况,分别对应文件名称、文件描述符和符号链接文件。stat结构描述了文件的属性,
千家信息网最后更新 2026年11月01日linux系统中怎么判断文件是否存在
linux下判断文件存不存在的方法:
1、stat系列函数
stat函数用来返回与文件有关的结构信息。stat系列函数有三种情况,分别对应文件名称、文件描述符和符号链接文件。stat结构描述了文件的属性,主要包括文件的类型、文件大小等等。详细stat结构如下所示:
struct stat { mode_t st_mode; // file type & mode(permissions) ino_t st_ino; // i-node number(serial number) dev_t st_dev; // device number(filesystem) dev_t st_rdev; // device number for specials files nlink_t st_nlink; // number of links uid_t st_uid; // user ID of owner gid_t st_gid; // group ID of owner off_t st_size; // size in bytes, for regular files time_t st_atime; // time of last access time_t st_mtime; // time of last modification time_t st_ctime; // time of last file status change long st_blksize; // best I/O block size long st_blocks; // number of 512-byte blocks allocated};我们可以通过stat获取文件的类型和文件大小等信息。文件类型有:普通文件、目录文件、块特殊文件、字符特殊文件、FIFO、套接字和符号链接。要想通过stat系列函数来判断文件或者目录是否存在,当执行stat函数,如果文件存在时,还需进一步判断该文件是普通文件还是目录文件。
stat系列函数错误返回-1,错误码存在errno中,errno取值如下:
1、ENOENT 参数file_name 指定的文件不存在
2、ENOTDIR 路径中的目录存在但却非真正的目录
3、ELOOP 欲打开的文件有过多符号连接问题, 上限为16 符号连接
4、EFAULT 参数buf 为无效指针, 指向无法存在的内存空间
5、EACCESS 存取文件时被拒绝
6、ENOMEM 核心内存不足
7、ENAMETOOLONG 参数file_name 的路径名称太长
2、access函数
access函数按照实际用户ID和实际组进行访问权限测试。函数原型为:
#includeint access(const char *pathname, int mode);
mode取值:
F_OK 测试文件是否存在
R_OK 测试读权限
W_OK 测试写权限
X_OK 测试执行权限
正确判断一个文件是否存在是用access函数,实现如下所示:
3、oepndir函数
opendir函数用来打开文件目录,成功返回指针,出错返回NULL。实现如下:
以上就是linux下判断文件存不存在的方法的详细内容,更多请关注其它相关文章!
文件
函数
目录
测试
权限
符号
参数
类型
结构
普通
特殊
信息
内存
名称
大小
实际
指针
方法
路径
链接
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
上海卓越科技互联网
互联网科技会
科技互联网公司装修
互联网扶贫科技
互联网下的科技发展
互联网科技集团
互联网科技论坛
互联网金融科技委员会
新华互联网科技校企合作
无锡溥仪互联网科技有限公司
银川新华互联网科技学校地址
互联网科技中介
小米互联网科技园设置
互联网经济与金融科技
互联网科技商业
速维有品互联网信息科技(苏州)有限公司
互联网科技和信息
深圳艾果互联网通讯科技
中国科技和美国互联网
江苏根荣互联网科技
互联网女皇 腾讯科技
北京禾田雨橡互联网科技
友谊互联网络科技
广西拼得多互联网科技有限公司
中国互联网有什么科技含量
爱医互联网络科技
工业互联网科技创业
美国五大互联网科技公司市值多少
科技美学互联网 艺术