文件描述符、文件打开表和inode表

文件描述符

文件描述符(进程级)就是一个数组,数组的每个下标内容都会指向打开文件表(系统级)的一个偏移量。每一个进程都会创建一个文件描述符,子进程会继承父进程的文件描述符。同一进程下多次打开同一个文件,文件描述符不一样,但是指向的偏移量一样,两个描述符对文件的操作不会相互影响。父子进程的文件描述符相同,所以会父子进程之间对文件的操作会相互影响。

文件打开表

文件打开表属于系统级文件。内核会对每一个打开的文件存储到这个描述表格中。表格中的每一项称为一个文件句柄,它存储了一个打开文件的所有相关信息(如文件偏移量,文件状态,inode地址)。

inode表

每一个文件都有自己的inode(索引节点)信息(稍后软链接,硬链接再补充)
多个文件名可能对应同一个inode,多个硬链接也可能对应同一个inode。inode表中包含以下信息:

  • 文件类型,例如常规文件、套接字或 FIFO。
  • 文件大小。
  • 时间戳,比如创建时间、更新时间。
  • 文件锁。
    借用c语言中文网里面的一张图,可以思考一下图中的箭头都是什么情况下会发生
    在这里插入图片描述
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值