Linux学习日记9——文件描述符

学习视频链接

黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click

目录

一、PCB进程控制块

二、文件描述符表

三、最大打开文件数

四、FILE结构体


一、PCB进程控制块

1、write 完成了把数据从用户区送到内核区

2、PCB 进程控制块本质是一个结构体,其中有一个成员是指针,这个指针指向文件描述符表,表里面存放的是文件描述符。

二、文件描述符表

1、简介

我们这两天看到的文件描述符是数字,其实是数字和指针的键值对,指针指向文件结构体,文件被open打开了,返回给我们文件描述符的数字。

 为什么我们是操作文件描述符的数字呢?因为系统不想让我们看到指针和封装细节。我们拿到了文件描述符就能操作文件了,系统实现细节我们不用关心。

2、代码演示

得到文件描述符是 3,

3、为什么文件描述符是 3 呢?

因为先打开了标准输入文件、标准输出文件、输出错误信息文件,后面打开的信息往下排

 一个进程能打开的文件上限是1024个,所以最大文件描述符是1023

这个值是可以修改,但要重新编译内核

4、如果打开了 3 4 5 三个文件删除 3,后面创建的文件放在 3 的位置,因为遵循存放在可用的最小位置的原则

5、后面可以用数字操作

0——STDIN_FILENO

1——STDOUT_FILENO

2——STDERR_FILENO

三、最大打开文件数

命令查看 ulimit -a 查看 open files 对应值。默认为 1024

可以使用 ulimit -n 4096 修改

当然也可以通过修改系统配置文件永久修改该值,但是不建议这样操作

cat /proc/sys/fs/file-max 可以查看该电脑最大可以打开的文件个数。受内存大小影响

四、FILE结构体

1、主要包含文件描述符、文件读写位置、I0 缓冲区三部分内容

struct file {
        ...
        文件的偏移量;
        文件的访问权限;
        文件的打开标志;
        文件内核缓冲区的首地址;
        struct operations *f_op;
        ...
};

2、查看方法:

/usr/src/linux-headers-3.16.0-30/include/linux/fs.h

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

herb.dr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值