【自我笔记之Linux】文件操作函数(系统调用函数、库函数)

1、文件描述符:由于linux下所有东西都被看成是文件,比如文件(也许叫文档比较合适一点)、目录、进程、网络socket、各种硬件设备等,所以linux下的文件描述符其实就相当于windows下的句柄。

      文件句柄:windows下各种对象的标识符,比如文件(也许叫文档比较合适一点)、资源、菜单、光标、位图等。文件句柄和文件描述符类似,它也是一个非负整数,也用于定位文件数据在内存中的位置。

 

2、系统调用函数和库函数

库函数:系统自带的库文件,是一些特定功能的实现

调用在用户态,实现也在用户态。有些函数需要转调系统调用函数

系统调用函数:操作系统内核提供给外层访问的一些接口函数

调用在用户态,实现在内核态

3、用户态切换到内核态的过程

  • 用eax寄存器保存系统调用号
  • 出发0x80中断   ---》  根据eax的值在系统调用表中查找内核函数

                                                                          call  sys_cal_table + eax * 4

  • 内核函数执行完成,也通过eax将结果返回

其中PCB中记录打开的文件资源的结构体实现:

PCB: struct file *filp[20];//fd是filp的下标

struct file: f_count//句柄数  文件描述符  计数器

f_pos //读写偏移量

Struct m_inode *f_inode; //指向结构体中包含文件的属性信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值