linux如何判断目录是否存在
发布时间 - 2019-11-06 00:00:00 点击率:次工作中涉及到文件系统,有时候需要判断文件和目录是否存在。我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询。 (推荐学习:linux运维)
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 的路径名称太长
# linux
# errno
# 是否存在
# 我们可以
# 第四章
# 要想
# 但却
# 不存在
# 所示
# 涉及到
# 主要包括
# 太长
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
Laravel中的Facade(门面)到底是什么原理
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
jQuery中的100个技巧汇总
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何在阿里云部署织梦网站?
再谈Python中的字符串与字符编码(推荐)
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
EditPlus中的正则表达式实战(5)
实例解析Array和String方法
如何在Tomcat中配置并部署网站项目?
Python正则表达式进阶教程_复杂匹配与分组替换解析
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
IOS倒计时设置UIButton标题title的抖动问题
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
智能起名网站制作软件有哪些,制作logo的软件?
Bootstrap整体框架之CSS12栅格系统
香港服务器部署网站为何提示未备案?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Laravel PHP版本要求一览_Laravel各版本环境要求对照
Laravel观察者模式如何使用_Laravel Model Observer配置
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
如何续费美橙建站之星域名及服务?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
如何在宝塔面板中创建新站点?
微信小程序 五星评分(包括半颗星评分)实例代码
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Laravel如何使用Livewire构建动态组件?(入门代码)
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
无锡营销型网站制作公司,无锡网选车牌流程?
香港服务器租用每月最低只需15元?
网易LOFTER官网链接 老福特网页版登录地址


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
};