Linux inode 软硬链接 stat系统调用

本文详细介绍了Linux操作系统中的inode概念,包括inode是什么、inode大小、inode号码和目录文件的结构。此外,还探讨了链接文件,如硬链接和软链接的差异,以及如何创建和使用它们。最后,阐述了stat系统调用在获取文件信息中的作用,强调了其在处理软链接时的特性。
摘要由CSDN通过智能技术生成

对《Unix/Linux系统编程》中关于inode文件索引节点,软硬链接,stat系统调用进行了总结
其中关于inode部分内容转载自网络链接
参考资料

1. 系统调用

在Linux操作系统中,进程以两种模式运行:内核模式和用户模式。在用户模式中进程的权限非常有限,不能执行任何需要特殊权限的操作,而这些需要特殊权限的操作只能在内核模式中执行。系统调用使得进程能够进入内核模式执行用户模式下不能执行的操作,如复刻子进程,修改执行映像,打开文件等操作。

系统调用必须由程序发出,用法与普通函数一样。每个系统调用函数都会汇集系统调用参数,并向操作系统内核发出一个系统调用:

int syscall(int number, ...);

syscall() 执行一个系统调用,第一个参数是系统调用编号,后面的参数是对应内核函数的参数

系统调用可让进程从用户模式切换到内核模式,内核的系统调用处理程序根据系统调用编号number将调用路由到一个相应的内核函数。当进程结束执行内核函数后会返回到用户模式并得到所需结果;如果失败,错误编号会记录在errno中,可以通过strerror获取错误对应的描述字符串。成功返回>=0,失败返回-1。

在Linux中系统调用函数说明放在man 2中。可以通过man 2 系统调用名称来查阅(例如可以查阅这些系统调用函数所需头文件,参数说明,返回值说明等)

2. inode

在 Linux 中 inode 号(即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。

inode相关内容转载自网络

2.1 inode是什么

文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)

操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是4KB,即连续八个sector组成一个block

文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方储存文件的“元信息”,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做*inode*,中文译名为"索引节点"。

每一个文件都有对应的inode,里面包含了与该文件有关的一些信息,如文件数据block的位置、blocks块数、文件内容上一次变更时间等等。。。可以说ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值