谁吃了你的硬盘空间?(2) 获取文件系统与文件信息

本文介绍了Linux和Unix系统中获取磁盘分区信息的方法,重点关注/etc/mtab文件在记录挂载信息上的作用。文章还阐述了df命令的工作原理,并解释了如何通过stat结构体和lstat系统调用来统计目录下文件所占空间,以确定磁盘空间占用情况。
摘要由CSDN通过智能技术生成

/etc目录下有一个fstab文件,记录了磁盘分区的信息,挂载分区(mount)的时候,就需要读取这个文件的信息。另外,同一目录下,还有一个mtab文件,记录了当前已挂载的磁盘分区信息,每当mount、umount的时候,都会更新该文件,而df命令,读取的也正是这个mtab文件。这是Linux的情况,如果是Unix,文件名字可能有所不同,例如:


操作系统    记录所有分区信息的文件    记录已挂载分区信息的文件
Linux    /etc/fstab    /etc/mtab
Solaris    /etc/vfstab    /etc/mnttab
HP-UX    /etc/fstab    /etc/mnttab

为叙述方便,本文都按Linux的标准编写。

/etc/mtab是一个按行表示已挂载分区信息的文件,以制表符或者空格分隔各列。第一列表示文件系统的名字,第二列表示文件系统挂载的目录,第三列表示文件系统的类型,第四列表示文件系统挂载时的参数,从第五列开始,各个操作系统的定义不尽相同,而且df命令无需用到,因此不再列举。

至此,简述一下df命令的工作原理:
1.    按行读取/etc/mtab文件,每行的内容解析成一个mntent结构体,该结构体在Linux中定义如下,df.c会用到前四个成员,但真正有用的是前两个:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值