Why JulianTec

学习实干型的工作室

   JulianTec并非纯粹追求商业利益的IT培训机构,她宣传谨慎,天生就立志成为实干家,而非简单的言辞吹嘘者和自我贴金者;

   相比较于经济利益,她更看重能在“久联”中形成一个团队学习进步的团队。

有可信赖的专业能力

   在JulianTec这边,不仅是讲师团队,就连其建立者也是在嵌入式Linux研发行业摸爬滚打多年的资深工程师出身。

   所以,相较于那些由业外人士创办的纯商业IT培训机构而言,她更能保证您的学习效果。

长久接触,终生受益

   短短数月的教学不可能教会您所有知识;SO,我们努力将巨立安打造成一个平台,一个可供您在您的职业生涯中长久与之保持联系,并从中不断受益的平台。

   相教于几个月的天天见面,我们更期待在您结业后能常在这个平台中看到您的身影。

培训和收费都阶段化

   由于不同的培训内容难度不一样,所以在培训时间和上课方式上就应该区别对待;

   因此JulianTec将整个培训周期及收费方式都做了“阶段化”,这不像其他商业培训机构那样眉毛胡子一把抓式的培训和收费。

理论联系实际的培训

   JulianTec的整个培训周期,都是以理论联系实际项目的形式来进行的。

   与其说我们是在教您书本上的具体研发技术,倒不如说是在传授我们自己的切身经验、是在培养你成为一个合格研发工程师的做事习惯和做事方法。

软硬结合的项目实作

   在嵌入式Linux产品的研发中,“软件硬件永远不分家”是一个永远也不用经过证明的公理。

   所以我们不仅会在上课过程中介绍大量的硬件知识,而且也会在项目的实作过程中牵涉进去一些简单电路的设计。

通过JulJob保障就业

   培训完结业后您有机会留下来继续服务于JulianTec,也可以透过JulJob人才职位对接器来找到合适的研发工作。

   在JulJob中有全国范围内众多的创新型研发企业与JulianTec保持着长期的合作。

消息"Re: 文件链接数的意义"的具体信息

Re: 文件链接数的意义



本人刚学linux  C编程,刚加入该邮件列表,希望以后能向
各位学习

不好意思,这段时间忙于其他事情,疏于回复邮件列表了。
欢迎您加入我们的邮件列表进行讨论。


文件长格式的第二项链接数的意义?可不可以理解为这个文
件里的程序“调用”了其他的文件或目录呢?

一般不是这样理解的。
首先说一下,在 ls -l 输出结果列表中的第二项表示文件的link count,即连接计数。


你如果熟悉文件系统在Linux中的实现就会知道,其实Linux每
一个文件在系统内部管理的时候,都会给其分配一个唯一的数
据结构,称为 inode。inode中记录了这个文件的内容保存在
磁盘的哪里哪里之类。


inode 是文件系统内部使用的,而作为用户的我们如果要读写
一个文件,那必须提供出来文件的名字。在用 read 系统调用
去读一个名为 "./tmp" 的文件的时候,它内部会将这
个名字转换成对 inode 的引用,继而读出文件的内容。

在一个文件系统范围内,我们可以给一个inode指派多个名字,
比方"./tmp"和"./tmp.hard"等,这样的话,
在文件系统内部这两个名字都指向了同一个inode,实际上也就
指向了同一个文件。所以,显然,你可以用"./tmp" 去
write一些内容。写完后,你可以去 read "./tmp.hard",从
而能读出你之前写进去的内容。

所以,上面说的连接计数,其实指的是指向同一个 inode 的
名字的数目,也就是一个inode的硬连接的数目。文件系统内,
给每一个inode 都分配一个编号,你可以用 ls -il 查看它。

说了这么多,我们做些测试就能明白:

[yihect@juliantec ~]$ echo 1234 > ./tmp
[yihect@juliantec ~]$ ls -il ./tmp
594476 -rw-rw-r--  1 yihect yihect 5 Oct 14 09:45 ./tmp
[yihect@juliantec ~]$ ln ./tmp ./tmp.hard
[yihect@juliantec ~]$ ls -il ./tmp ./tmp.hard
594476 -rw-rw-r--  2 yihect yihect 5 Oct 14 09:45 ./tmp
594476 -rw-rw-r--  2 yihect yihect 5 Oct 14 09:45 ./tmp.hard
[yihect@juliantec ~]$
[yihect@juliantec ~]$
[yihect@juliantec ~]$ cat ./tmp
1234
[yihect@juliantec ~]$
[yihect@juliantec ~]$
[yihect@juliantec ~]$ echo abcd >> ./tmp
[yihect@juliantec ~]$
[yihect@juliantec ~]$
[yihect@juliantec ~]$ cat ./tmp.hard
1234
abcd
简述下上面的测试过程:以 "./tmp" 问名称新建一个文件 ,这个文件对应的 inode 编号为 594476。接下来使用 ln 建立一个硬连接 ./tmp.hard. 注意用 ls -il 查看这两个 名字都指向同一个 inode,并且连接计数从原来的1变成了2。 最后我就是做了些读写的测试,表明操作的是同一个文件。 另外,说一下,当一个 inode 的计数降低到了0的时候, 文件系统内部就会释放这个inode所占用的内存,并在磁 盘中回收原先用于储存这个文件内容的扇区。那我们如何 测试以降低连接计数,可以使用 rm 删除文件。
[yihect@juliantec ~]$ ln ./tmp ./tmp.hard2
[yihect@juliantec ~]$ ls -il ./tmp ./tmp.hard ./tmp.hard2
594476 -rw-rw-r--  3 yihect yihect 10 Oct 14 09:46 ./tmp
594476 -rw-rw-r--  3 yihect yihect 10 Oct 14 09:46 ./tmp.hard
594476 -rw-rw-r--  3 yihect yihect 10 Oct 14 09:46 ./tmp.hard2
[yihect@juliantec ~]$ rm ./tmp
[yihect@juliantec ~]$ ls -il ./tmp.hard ./tmp.hard2
594476 -rw-rw-r--  2 yihect yihect 10 Oct 14 09:46 ./tmp.hard
594476 -rw-rw-r--  2 yihect yihect 10 Oct 14 09:46 ./tmp.hard2
与硬连接对应的是软件连接,你可以查查看什么是软连接。