一个小小的发现

为当前最终发行版之前的所有版本提供支持
回复
HerrWu
帖子: 47
注册时间: 2006-09-20 20:05
来自: 湖北武汉
送出感谢: 0
接收感谢: 0

一个小小的发现

#1

帖子 HerrWu » 2007-02-11 0:05

对Linux略知一二的朋友都知道,*是Linux的通配符,代表任意个任意字符,用在命令行里面表示路径就代表某路径下的所有文件。

上次为了练习,写了个程序打印文件的信息,比如长度、所在设备的设备号、占用扇区数、所在设备每扇区字节数……。该程序通过main的参数argv取得要被取文件节点信息的文件路径,并且允许输入多个文件路径。程序写好了后突然想到给个*号作参数,结果把该目录下的所有文件节点信息都打印出来了。于是仔细看了一下,发现是shell在将参数传递给main之前,将*已经替换成了该目录下所有文件的文件名。

同时还通过这个程序发现硬盘的Block size为4k,一个不足一个不足4k甚至只有几百字节的文件也会占用8个Block,一个刚刚超过8k的文件要占用24个Block。呵呵,估计是为了防止文件修改后产生磁盘碎片。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2007-02-11 0:33

本来如此。呵呵
● 鸣学
头像
Jimmy.Zhou
帖子: 475
注册时间: 2006-12-05 21:51
来自: Vienna, Austria
送出感谢: 0
接收感谢: 0

#3

帖子 Jimmy.Zhou » 2007-02-11 5:55

学到了 8)
Jimmy.Zhou

Acer Extensa 5620G
T5250 + HD 2400 XT + 2G DDR2 +160G SATA + iwp 3945
Ubuntu Intrepid Ibex + Firefox 3
回复

回到 “老旧版本支持”