当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 21 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-23 17:19 
头像

注册: 2009-08-14 16:24
帖子: 314
送出感谢: 0 次
接收感谢: 0 次
我记得,就是。

opendir()用来读取目录,然后它就会返回一个DIR的指针。

但是又发现用于文件的open()函数也可以用来“open”dir,然后也会返回一个文件描述符。

一个目录也可以用文件描述符。。~~这个。。。那它跟文件有什么联系和区别呢?

迷惑中· :em06


_________________
我很乖的。。。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-23 17:39 
头像

注册: 2008-02-12 19:47
帖子: 262
送出感谢: 0 次
接收感谢: 0 次
目录本来就是文件,只不过你觉得它是目录


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-23 17:56 
头像

注册: 2009-08-14 16:24
帖子: 314
送出感谢: 0 次
接收感谢: 0 次
目录本来就是文件,那么。

它们有什么区别呢?

我只知道对一个目录具有可执行权限的话就是能列出目录里面的文件名单。对文件可执行那就是可执行。


_________________
我很乖的。。。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-23 17:56 
头像

注册: 2009-04-11 12:17
帖子: 3049
送出感谢: 0 次
接收感谢: 0 次
目录是“文件夹,文件”
例如:
引用:
[wowoto@Archlinux ~]$ file /home/
/home/: directory

文件是“文件”
例如:
引用:
[wowoto@Archlinux ~]$ file /home/wowoto/Desktop/@.tex
/home/wowoto/Desktop/@.tex: LaTeX 2e document text
[wowoto@Archlinux ~]$


_________________
wowoto>ubuntu8.04>ubuntu9.04>Archlinux>FreeBSD8.0>Archlinux & end here.


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-24 8:07 
头像

注册: 2009-08-14 16:24
帖子: 314
送出感谢: 0 次
接收感谢: 0 次
对一个目录进行操作~
如下:
代码:
lucifer@DearBaby:~/CC$ ls
CTrapsAndPitfalls  C和指针  forget  grep-2.5.4   header   knowledge  Unix
lucifer@DearBaby:~/CC$ cd Unix
lucifer@DearBaby:~/CC/Unix$ cd ..
lucifer@DearBaby:~/CC$ cat Unix
cat: Unix: Is a directory
lucifer@DearBaby:~/CC$ ls Unix
1-1.c    1-3.c   3-1.c   4-2.c   4-6.c~    apue.h~    stat.c
1-1.rar  1-4.c   3-2.c   4-3.c   4-7.c    bar       stevens.advprog.tar.Z
1-2.c    1-5.c   3-2.c~   4-3.c~   4-7.c~    file.hole  TestLseek.c
1-2.out  1-6.c   3-3.c   4-4.c   a.out    foo
1-2try    1-7.c   3-4.c   4-5.c   apue1.h  forget
1-2try1  1-8.c   4-1.c   4-6.c   apue.h    lseek.c
lucifer@DearBaby:~/CC$ vim Unix

在最后我Vim了这个目录,然后我看到了这个。
附件:
Screenshot.png
Screenshot.png [ 87.3 KiB | 被浏览 5038 次 ]


vim显示的这个是什么来的?
怎么读?


_________________
我很乖的。。。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-24 8:27 
头像

注册: 2009-08-14 16:24
帖子: 314
送出感谢: 0 次
接收感谢: 0 次
我发现了,在这里vim被当作了一个资源管理器来用了。

但有个问题,就是。

在柱面组中,有i节点,目录快,数据块,那么,那个柱面组中的目录快是不是这里所说的“目录”?


_________________
我很乖的。。。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-24 14:18 
头像

注册: 2008-02-17 23:47
帖子: 22120
地址: 美丽富饶的那啥星球
送出感谢: 11
接收感谢: 84
我觉得“目录”其实就是一个节点,或者说就是一个指向牌,就像分叉路口的指路牌一样,帮助你找到正确的地方(数据块)

想起当年学电脑的时侯,我的老师说——文件夹就是在硬盘上的一块存储文件的区域,汗!真是误人啊


_________________
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-25 0:59 

注册: 2009-04-03 15:10
帖子: 1831
送出感谢: 0 次
接收感谢: 0 次
目录也是一种文件,是DIR类型的描述符
例如
DIR *ptr;
ptr = opendir(path);

/* 大概是这么写吧,具体形式我忘了 */

至于能不能用open系统调用打开我没有做过实验,不清楚,不过就算能够打开也没有什么大惊小怪的。

linux目录的一般结构:

|超级块|i节点|数据区|

整块硬盘大概这么分区,具体则会有变化

实际上真正记录文件位置的是i节点块,i节点中记录了文件的属性信息,以及文件实际内容在数据区中的位置
数据区只负责记录文件的内容
超级块你不用管它

所谓目录,就是i节点中某一个条目指向的磁盘区域,这个区域中记录的是它所包含的文件和子目录的i节点编号……
所谓文件,就是i节点中某一个条目指向的磁盘区域,这个区域中记录的是文件的内容……

上面大概就是目录和文件的唯一区别了……只是记录的内容不一样而已,然后,由于在建立目录或者文件的时候,分配i节点时会在i节点内填入文件属性,这样就给用户表现出了目录和文件的区别……

呃……大概就是这个样子,不知道我解释的是否清楚


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-25 10:05 

注册: 2008-11-01 21:42
帖子: 1028
地址: 树下板凳
送出感谢: 0 次
接收感谢: 1
引用:
所谓目录,就是i节点中某一个条目指向的磁盘区域,这个区域中记录的是它所包含的文件和子目录的i节点编号……
所谓文件,就是i节点中某一个条目指向的磁盘区域,这个区域中记录的是文件的内容……

如8L所说,我觉得没有本质区别
目录和文件区别是他们stat属性来区分的(一组宏),stat属性包含了文件和目录的各种信息,但他们都可以用stat结构来描述,可以说没本质上的区别


_________________
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-25 13:15 

注册: 2006-09-11 22:47
帖子: 2841
送出感谢: 0 次
接收感谢: 4
13025700481 写道:
我记得,就是。
opendir()用来读取目录,然后它就会返回一个DIR的指针。
但是又发现用于文件的open()函数也可以用来“open”dir,然后也会返回一个文件描述符。
一个目录也可以用文件描述符。。~~这个。。。那它跟文件有什么联系和区别呢?
迷惑中· :em06


目录就是一个普通的文件,根据文件里面的内容可以解析出目录中的内容。

一副普通的图片文件,用 open() 也可以打开,但自己需要解析的函数才能够读取出具体的内容。

opendir() 其实也许就只是一个解析的接口而已。


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-25 17:07 
头像

注册: 2008-09-05 23:31
帖子: 1363
系统: LinuxMint17
送出感谢: 35
接收感谢: 11
看来机器和人就是难以交流哦。 :em04


_________________
茕茕
问题大海之一粟:http://forum.ubuntu.org.cn/viewtopic.php?f=74&t=212497
NEMO-Actions使用方法:http://forum.ubuntu.org.cn/viewtopic.php?f=175&t=456548
在线编码转换:http://2cyr.com/decode/?lang=en


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-26 8:59 
头像

注册: 2009-08-14 16:24
帖子: 314
送出感谢: 0 次
接收感谢: 0 次
引用:
|超级块|i节点|数据区|
整块硬盘大概这么分区,具体则会有变化


by reading the book , i was told that....

磁盘里有很多分区。
每个分区里有自举块,超级块,柱面组。
每个柱面组里有超级块副本,配置信息,i节点图,块位图,i节点数组,数据块。
数据块里面又夹杂着一些目录块。
目录块里面记载的是i节点号和文件名。
i节点指向数据块。

well。。。~

输入完上面的东西之后, 发现个东西,目录块没有被东西指向。
我猜它或许就是我们看到的“目录”了。 :em05
(该死的,昨天停电了一天)


_________________
我很乖的。。。


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-26 9:06 
头像

注册: 2009-08-14 16:24
帖子: 314
送出感谢: 0 次
接收感谢: 0 次
如果真是这样的话,我还是迷惑对于1楼的问题:

对于一个目录用open()函数。

10楼的思路貌似不错 :em11 ,我再想想~~`


_________________
我很乖的。。。


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-27 0:24 

注册: 2009-04-03 15:10
帖子: 1831
送出感谢: 0 次
接收感谢: 0 次
13025700481 写道:
引用:
|超级块|i节点|数据区|
整块硬盘大概这么分区,具体则会有变化


by reading the book , i was told that....

磁盘里有很多分区。
每个分区里有自举块,超级块,柱面组。
每个柱面组里有超级块副本,配置信息,i节点图,块位图,i节点数组,数据块。
数据块里面又夹杂着一些目录块。
目录块里面记载的是i节点号和文件名。
i节点指向数据块。

well。。。~

输入完上面的东西之后, 发现个东西,目录块没有被东西指向。
我猜它或许就是我们看到的“目录”了。 :em05
(该死的,昨天停电了一天)

呃……你给说复杂了……我说的是一个基本的抽象……你那个……是在这个基础的抽象上面加了许多东西……so……你看的书太复杂了……看本基本的书去……

目录块……是没有东西指向的……我记得是磁盘根目录的位置是放在一个特定的地方的,每当系统启动,就读这个地方,得到一个目录入口,然后又由于整个磁盘的目录是串成一棵树的,只要指导一个节点就可以找到所有的节点……

大概就是这样


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 在Linux中目录和文件有什么区别和联系?
帖子发表于 : 2010-01-27 0:25 

注册: 2009-04-03 15:10
帖子: 1831
送出感谢: 0 次
接收感谢: 0 次
另外十楼说的有道理……赞一个……


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 21 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译