• minix3中的read系统调用


    1.定义

    n = read(fd, buffer, nbytes);

    参数说明:

    fd:文件描述符

    buffer:存放取回数据的缓冲区?

    nbytes:要读取的字节数

    2.步骤

    对于调用者来说,一般是构造一条消息,包含以上三个参数,发送给系统,然后自己阻塞起来。

    read函数从消息中提取出fd,找到相应的filp表项以及目标文件的inode。

    然后将读请求分段,分段后每一次的操作都对应与一个块,即将跨块的操作分解。

    分解之后,检查需要读取的块是否在高速缓存中。若不在,调入之。

    fs(文件系统)向task(系统任务)发送一条消息,请求将数据复制到用户缓冲区中。当然复制也是分块操作的。

    发送应答消息给库函数,库函数再回应用户(调用程序)。

    read操作到此为止,但在具体实现的时候还有一步,就是预读下面的文件块,

    这样需要的时候,他们就已经在高速缓存中了。

  • 相关阅读:
    filter_input() 函数
    php get_magic_quotes_gpc()函数用法介绍
    echo、print、sprint、sprintf输出
    nl2br() 函数
    chop函数
    in_array 查询数组中是否存在某个值
    SQL技巧
    运算符(一)
    JS数据类型
    JS的基本语法与字面量和变量
  • 原文地址:https://www.cnblogs.com/jun14/p/2809002.html
Copyright © 2020-2023  润新知