全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

linux下判断文件和目录是否存在的方法(总结)

1、前言

工作中涉及到文件系统,有时候需要判断文件和目录是否存在。我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询。

2、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 的路径名称太长

3、access函数

access函数按照实际用户ID和实际组进行访问权限测试。函数原型为:

#include <unistd.h>
int access(const char *pathname, int mode);

mode取值:

F_OK   测试文件是否存在

R_OK  测试读权限

W_OK 测试写权限

X_OK 测试执行权限

正确判断一个文件是否存在是用access函数,实现如下所示:

4、oepndir函数

opendir函数用来打开文件目录,成功返回指针,出错返回NULL。实现如下:

以上这篇linux下判断文件和目录是否存在的方法(总结)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# linux  # 判断  # 文件  # 目录  # Linux中的info指令详解  # linux下mysql的root密码忘记的解决方法  # linux二进制通用包安装mysql5.6.20教程  # 微信小程序 Linux开发环境设置详解  # 关于Linux下对于makefile的理解  # Linux下简易进度条的实现代码  # Linux虚拟机下mysql 5.7安装配置方法图文教程  # linux系统下oracle11gR2静默安装的经验分享  # Linux od命令详细介绍及用法实例  # Linux xargs命令详细介绍  # Linux 常用命令挂载命令详解  # 是否存在  # 给大家  # 所示  # 我们可以  # 第四章  # 希望能  # 要想  # 但却  # 不存在  # 这篇  # 涉及到  # 主要包括  # 太长  # 还需  # 该文件  # 文件系统  # 小编  # 有三种  # 大家多多  # 如何正确 


相关文章: 兔展官网 在线制作,怎样制作微信请帖?  如何选择高效便捷的WAP商城建站系统?  如何在西部数码注册域名并快速搭建网站?  ,网页ppt怎么弄成自己的ppt?  如何快速搭建高效WAP手机网站吸引移动用户?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  ,柠檬视频怎样兑换vip?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  历史网站制作软件,华为如何找回被删除的网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  设计网站制作公司有哪些,制作网页教程?  建站之星收费标准详解:套餐费用及年费价格表一览  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何在Windows服务器上快速搭建网站?  建站之星会员如何解锁更多建站功能?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  模具网站制作流程,如何找模具客户?  如何用AWS免费套餐快速搭建高效网站?  如何通过主机屋免费建站教程十分钟搭建网站?  大连 网站制作,大连天途有线官网?  如何基于云服务器快速搭建个人网站?  如何快速搭建高效服务器建站系统?  建站之星北京办公室:智能建站系统与小程序生成方案解析  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  已有域名能否直接搭建网站?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  高端云建站费用究竟需要多少预算?  如何打造高效商业网站?建站目的决定转化率  营销式网站制作方案,销售哪个网站招聘效果最好?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  如何用PHP工具快速搭建高效网站?  建站之星导航菜单设置与功能模块配置全攻略  如何配置支付宝与微信支付功能?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  如何选择香港主机高效搭建外贸独立站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何在阿里云完成域名注册与建站?  潮流网站制作头像软件下载,适合母子的网名有哪些?  如何快速生成橙子建站落地页链接?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何选择高效可靠的多用户建站源码资源?  如何通过多用户协作模板快速搭建高效企业网站?  如何在宝塔面板中创建新站点?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。