加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱资讯网 (https://www.52junxun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Linux下判断文件夹或者目录是否存在

发布时间:2023-01-09 10:52:05 所属栏目:Unix 来源:
导读:  Linux下如何判断文件夹或者目录是否存在?在开发中经常遇到这样的问题,本篇文章为大家详细讲解一下Linux下判断文件夹或者目录是否存在具体方法。

  tat系列函数

  stat函数用来返回与文件有关的结构
  Linux下如何判断文件夹或者目录是否存在?在开发中经常遇到这样的问题,本篇文章为大家详细讲解一下Linux下判断文件夹或者目录是否存在具体方法。
 
  tat系列函数
 
  stat函数用来返回与文件有关的结构信息。stat系列函数有三种情况,分别对应文件名称、文件描述符和符号链接文件。stat结构描述了文件的属性,主要包括文件的类型、文件大小等等。详细stat结构如下所示:
 
  1?struct?stat?{
  2?????mode_t????st_mode;????//?file?type?&?mode(permissions)
  3?????ino_t?????st_ino;?????//?i-node?number(serial?number)
  4?????dev_t?????st_dev;?????//?device?number(filesystem)
  5?????dev_t?????st_rdev;????//?device?number?for?specials?files
  6?????nlink_t???st_nlink;???//?number?of?links
  7?????uid_t?????st_uid;?????//?user?ID?of?owner
  8?????gid_t?????st_gid;?????//?group?ID?of?owner
  9?????off_t?????st_size;????//?size?in?bytes,?for?regular?files
  10?????time_t????st_atime;???//?time?of?last?access
  11?????time_t????st_mtime;???//?time?of?last?modification
  12?????time_t????st_ctime;???//?time?of?last?file?status?change
  13?????long??????st_blksize;?//?best?I/O?block?size
  14?????long??????st_blocks;??//?number?of?512-byte?blocks?allocated
  15?};
  我们可以通过stat获取文件的类型和文件大小等信息。文件类型有:普通文件、目录文件、块特殊文件、字符特殊文件、FIFO、套接字和符号链接。要想通过stat系列函数来判断文件或者目录是否存在unix路径简化,当执行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?的路径名称太长
  access函数
 
  access函数按照实际用户ID和实际组进行访问权限测试。函数原型为:
 
  #include?
  int?access(const?char?*pathname,?int?mode);
  mode取值:
 
  F_OK 测试文件是否存在
 
  R_OK 测试读权限
 
  W_OK 测试写权限
 
  X_OK 测试执行权限
 
  正确判断一个文件是否存在是用access函数,
 
  oepndir函数
 
  opendir函数用来打开文件目录,成功返回指针,出错返回NULL
 

(编辑:我爱资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章