这是检查C目录中是否为空的正确方法?有没有更有效的方式来检查一个空目录,特别是如果它有1000个文件,如果不是空的?

int isDirectoryEmpty(char *dirname) {

int n = 0;

struct dirent *d;

DIR *dir = opendir(dirname);

if (dir == NULL) //Not a directory or doesn't exist

return 1;

while ((d = readdir(dir)) != NULL) {

if(++n > 2)

break;

}

closedir(dir);

if (n <= 2) //Directory Empty

return 1;

else

return 0;

}

如果它是一个空目录,readdir将在条目“停止”之后.和’..’,因此如果n <= 2则为空. 如果它为空或不存在,它应该返回1,否则返回0 更新:

@c$time ./isDirEmpty /fs/dir_with_1_file; time ./isDirEmpty /fs/dir_with_lots_of_files

0

real 0m0.007s

user 0m0.000s

sys 0m0.004s

0

real 0m0.016s

user 0m0.000s

sys 0m0.008s

为什么需要更长时间来检查具有大量文件的目录与只有一个文件的目录相比?

Linux目录是否是否为空,在Linux上使用C检查目录是否为空相关推荐

  1. golang判断结构体为空_如何在Golang中检查结构是否为空?

    golang判断结构体为空 The size of an empty structure is zero in Golang. Here, empty structure means, there i ...

  2. linux cat 递归目录,黑猴子的家:Linux 文件目录命令

    1.pwd 显示当前工作目录的绝对路径 1)基本语法 pwd (功能描述:显示当前工作目录的绝对路径) 2)案例 [root@hadoop101 home]# pwd /home 2.ls 列出目录的 ...

  3. Python监控目录文件夹,并使用SFTP上传目录及文件到linux服务器

    Python 扫描监控本地文件夹并进行超大文件上传 方案1:WebUploader大文件分块多线程并发上传 方案2:watchdog目录文件夹监控,paramiko STFP上传服务器 方案3:优化2 ...

  4. linux的spio在服务器间,scp 将数据从一台linux服务器复制到另一台linux服务器

    注意: 必须先登录一台服务器,在服务器上操作一下步骤 以下命令执行成功后需要你输入连接的服务器的密码 从服务器复制目录(文件夹)到本地 scp -r root@172.0.0.1:/data/wwwr ...

  5. php上传文件默认路径,PHP文件上传到指定目录的实现过程实例解析

    摘要:文件上传其实很简单,通过form表单就可以实现.但form表单上传文件只是把文件放到服务器的临时目录,它还需要我们把上传到临时目录的文件转放到服务器的指定目录.简单的说:把文件从临时目录移动到指 ...

  6. 文件节点的linux指令,Java工程师必学的Linux命令(一)文件与目录管理

    从本篇文章开始,我将总结一些Java工程师日常研发工作中会使用到的Linux命令,在介绍这些命令的过程中,也会对Linux系统的一些基础知识进行普及.希望对大家工作和学习有所帮助吧. 本篇将从文件与目 ...

  7. linux数字设定法设定权限,Linux chmod命令详解和使用实例(改变文件或目录的访问权限)...

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...

  8. Linux基础到进阶(一)Linux基础命令、输入输出错误重定向、目录分类与作用、vi编辑器

    文章目录 基础命令 输入.输出.错误重定向 输入重定向: < 输出重定向:> 错误重定向 目录分类与作用 vi编辑器 命令模式 底行模式 基础命令 1.cd命令 功能说明:切换目录 cd ...

  9. Linux学习(一)虚拟机安装linux资源,linux目录结构,购买阿里云服务器远程登陆linux,下载安装并使用Xshell与Xftp

    1,虚拟机安装linux 下载安装VMware虚拟机与一个linux系统镜像文件,linux系统可以选择ubuntu或者centos.虚拟机与Linux镜像文件网盘链接,提取码:6666,具体的安装步 ...

最新文章

  1. 算法导论——二叉查找树
  2. ERROR LNK2019:无法解析的外部的符号 _sscanf或者_vsprintf
  3. C# 反射 设置字段值无效的解决办法
  4. 访问者模式(Visitor)
  5. 对我国超级计算机的应用,要加强我国超级计算机应用人才储备
  6. pat编程语言_浙江大学在线pat题库集合
  7. css整张背景 多边形,JS/CSS3 低多边形大红绸缎全屏背景图(无图片)
  8. linux安装chrome_chrome 的安装及出现密钥问题(ubuntu16.04)
  9. vue-自定义组件传
  10. 如何修改docker swarm节点的hostname
  11. powerpc如何移植Linux系统,PowerPC平台 u-boot 移栽
  12. 如何将PDF文档转换成JPG格式
  13. HTML基础之表单制作
  14. 超算入门笔记:大型机上如何运行WRF模式?一文总结(并行运算、Linux基础、作业调度、WRF运行)
  15. 英特尔:准备好放弃芯片制造了吗?
  16. wannier拟合能带总是拟合不上_VASP+Wannier90方法拟合单层MoS2的能带,请问如何改善拟合结果?...
  17. educoder数据结构与算法 图 第2关:实现图的深度优先遍历
  18. 【webpack系列】webpack小老弟打包大项目
  19. python poisson图像融合制作CSDN博客头像
  20. wowza媒体所使用的端口

热门文章

  1. 一文了解动态场景中的SLAM的研究现状
  2. PCL 点云特征描述与提取
  3. linux 如何运行.sql文件
  4. Nat.Commun. | DeepAccNet:基于深度学习的准确性估计改善蛋白质结构优化
  5. Mol2vec | 一种无监督机器学习方法的分子亚结构向量表示
  6. python大神教程_大神python教程415集全套,拿走不谢
  7. 17日南土所蒋瑀霁报告:红壤团聚体尺度养分转化的生物学过程(线虫-微生物互作机制)...
  8. COM:追踪植物-微生物组互作的进化历史
  9. 如何查找基因在发表研究中的表达
  10. pandas索引复合索引dataframe数据、索引其中一个水平(level)的所有数据行(index all rows in a level)