美文网首页
Linux系统编程2

Linux系统编程2

作者: StevenHD | 来源:发表于2020-12-14 12:21 被阅读0次

    一、task_struct结构体

    • FD表中的FD指针会指向一个file结构体,这个【file结构体】是处于内核空间的,而不是像C标准中的【FILE结构体】一样处于用户空间
    • 【file结构体】中的指向文件指针指向的是【磁盘上存放的真正文件】
    • fd的选取通常选择未使用的最小的fd
    • FD表是在task_struct中的,但是file结构体不在,不过二者都是在内核空间中的
    • 一个新的文件创建后,就会有一个对应的fd和file指针指向新建的file结构体,file结构体中的参数则是open()一开始指定的,针对于pos参数,则是lseek()函数指定

    二、lseek()函数

    2.1 偏移量

    • 主要功能:设置偏移量

    比如说,读完文件后,要从头开始读,那么如果移动到开头位置呢?

    2.2 产生1GB的空洞文件

    • 结果——


    三、文件发访问权限

    • access()

    四、fcntl()函数

    • 可以修改文件属性

    比如将阻塞读改为非阻塞读,因为阻塞读的话,会一直等待输入,这个时候就不能做其他事情

    • top命令用来查看CPU使用率

    • 设置成O_NONBLOCK以后,如果没有数据可以读,就会返回EAGAIN,但这个并不是致命错误,就再读一遍就好了

    • 标志位的更改方法:


    1. 阻塞等待
    1. 非阻塞轮询


    1. IO复用

    相关文章

      网友评论

          本文标题:Linux系统编程2

          本文链接:https://www.haomeiwen.com/subject/zklvgktx.html