linux中readdir是按照啥顺序读一个文件夹下的文件的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中readdir是按照啥顺序读一个文件夹下的文件的?相关的知识,希望对你有一定的参考价值。

谢谢,也就是说d_off的顺序是按照什么来的

readdir是按照在磁盘上的文件索引顺序读上来的,由文件系统自动控制的。
如果想排序的话,只能自己来做。
参考技术A 目录项的排序在不同unix实现上不同,一般不按字母顺序排列,不同文件系统上也可能存在差异,有些是按dirent结构中的偏移量d_off排列的,但不能保证所有的都是这样 参考技术B 该函数用来读取目录handle。返回目录中的文件名称,读取不照任何特殊的顺序。本回答被提问者采纳 参考技术C 按照实际存储体上存储的顺序访问

linux 将文件权限改为:-r-xr-x--x 是啥意思,用数字表示是多少

当你在linux下用命令ll 或者ls -la的时候会看到这些字眼,这些字眼表示为不同用户组的权限:
r:read就是读权限 --数字4表示
w:write就是写权限 --数字2表示
x:excute就是执行权限 --数字1表示
这里总共会有10个“-”,第一个表示文件类型,如该文件是文件(-表示),文件夹(d表示),连接文件(l表示),后面9个按照三个一组分,如:
-xrwxrw--- 770权限表示此文件(文件夹)的拥有着和同组用户有读写及执行权限,其他用户组没任何权限
就是前面三个表示所有者权限,中间三个表示同组用户权限,最后一组表示其他用户权限

因此,你提问的-r-xr-x--x 表示你现实的内容是文件,权限为661,就是所有者及同组用户能读、执行,其他用户只能执行

以上的其他用户,不包括root这个super user。
参考技术A 444 r--r--r--
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx

三位数字代表9位的权限,分成3部分,第一部分3位表示所有者的权限,第二部分3位表示同组用户权限,第三部分3位表示其他用户权限,r代表读取权限等于4,w代表写入权限等于2,x代表执行权限等于1

比如777,第一位7等于4+2+1,所以就是rwx,所有者有读取、写入、执行的权限,第二位7也是4+2+1,rwx,同组用户具有读取、写入、执行权限,第三位7,代表其他用户有读取、写入、执行的权限。
比如744,第一位7等于4+2+1,rwx,所有者具有读取、写入、执行权限,第二位4等于4+0+0,r--,同组用户只有读取权限、第三位4,也是r--,其他用户只有读取权限。

说这么多希望你明白了,呵呵,不明白继续留言。搞明白权限的问题,首先用户、组、所有者、同组用户、其他用户的概念也要清楚。
参考技术B chmod 551 filename
表示文件拥有者及文件所属组的所有成员可以读取文件内容和执行文件,其它人只能执行为件。不过既然其它人都不能读取文件内容,那么也没办法执行
所以这个权限跟
chmod 550 filename是一样的。
参考技术C r是读,w是写,x是执行
数字:551
实际上是八进制数可以理解为
101 101 001
具体内容可看这篇文献
http://wenku.baidu.com/view/dfba7fbfc77da26925c5b078.html
参考技术D 从左到右,- 表示文件类型
然后是文件属主 组 其他用户的权限。

r表示读 w 表示写 x 表示执行。分别对应数字是 4 2 1

以上是关于linux中readdir是按照啥顺序读一个文件夹下的文件的?的主要内容,如果未能解决你的问题,请参考以下文章

Linux编程--readdir

Linux读取目录文件

2017.11.15课堂门票补交

Linux有啥文件类型

在 Perl 中有啥理由更喜欢 glob 而不是 readdir(反之亦然)?

linux 将文件权限改为:-r-xr-x--x 是啥意思,用数字表示是多少