免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8803 | 回复: 13
打印 上一主题 下一主题

[C] 关于对Linux的目录和文件的遍历顺序问题…… [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-12 14:06 |只看该作者 |倒序浏览
本帖最后由 chinaltang 于 2010-04-12 17:16 编辑

1、 主要是想从数据结构的角度知道linux下的目录和文件是如何组织的,比如:按文件名组织成二叉树?

2、基于上面这个问题,readdir 这个函数是怎样遍历文件和目录的:
   
   
    if( NULL ==  (dp = opendir("/root")))
     {
            perror("opendir");
            return -1;
      }

      while( NULL != (dirEntry = readdir(dp)))
      {
            printf("%s\n",dirEntry->d_name);
            /*other operation for every directory or file*/
      }
      
       这段代码是按照什么顺序遍历打印各个目录或文件名的呢?(我本以为是简单的按命名顺序打印,可惜不是啊)

     求教高手啦!

论坛徽章:
0
2 [报告]
发表于 2010-04-12 15:02 |只看该作者
这个你应该去看linux内核及文件系统的资料,目录操作的相关API和底层实现是可以分离的

论坛徽章:
0
3 [报告]
发表于 2010-04-12 15:26 |只看该作者
本帖最后由 chinaltang 于 2010-04-12 15:28 编辑

回复 2# sunlan


项目有相关需求,所以就先发个帖子问问。这些东西比较细节,资料不是很好找

论坛徽章:
0
4 [报告]
发表于 2010-04-12 17:34 |只看该作者
求教

论坛徽章:
0
5 [报告]
发表于 2010-04-12 19:13 |只看该作者
不要依赖于返回的顺序,不同文件系统的顺序可能都不一样,自己把所有信息拿到,然后按自己想要的顺序排序好再输出

论坛徽章:
0
6 [报告]
发表于 2010-04-12 23:32 |只看该作者
1 找本操作系统教材看看,网上应该有得下
2 一般获得目录后自己排序 默认输出好像跟文件创建时间有关 不确定

论坛徽章:
0
7 [报告]
发表于 2010-04-12 23:45 |只看该作者
好像是按照目录层次结构吧~先在跟目录下第一个目录文件,把第一个目录文件遍历完后进入第二个目录文件,依次下去知道遍历完

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
8 [报告]
发表于 2010-04-13 01:14 |只看该作者
去看 man scandir 那个例子就是你想要的

论坛徽章:
0
9 [报告]
发表于 2010-04-13 10:05 |只看该作者
回复 6# 皇家救星

恩 保险起见,还是加一段排序的代码吧,移植到别的系统也省心些

论坛徽章:
0
10 [报告]
发表于 2010-04-13 14:27 |只看该作者
物理存储顺序
打印一下inode看看就知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP