美文网首页
8.4随机访问

8.4随机访问

作者: Hy_Slin | 来源:发表于2018-02-11 14:08 被阅读0次

    输入/输出通常是顺序进行的,每次调用read和write进行读写的位置紧跟在前一次操作的位置之后.但是,有时候需要以任意顺序进行访问文件,系统调用lseek可以在文件中任意移动位置而不实际读写任何数据.

    直接套用百度百科的解释吧,书上的不太能看懂.

    每一个已打开的文件都有一个读写位置,当打开文件时通常其读写位置是指向文件开头,若是以附加的方式打开文件(如O_APPEND),则读写位置会指向文件尾。当read()或write()时,读写位置会随之增加,lseek()便是用来控制该文件的读写位置。参数fd 为已打开的文件描述符,参数offset为根据参数origin来移动读写位置的位移数。
    offset:偏移量,每一读写操作所需要移动的距离,单位是字节的数量,可正可负(向前移,向后移)。

    参数

    origin为下列其中一种:(SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2).
    SEEK_SET 将读写位置指向文件头后再增加offset个位移量。
    SEEK_CUR 以目前的读写位置往后增加offset个位移量。
    SEEK_END 将读写位置指向文件尾后再增加offset个位移量。
    当origin值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。

    就是可以在任意位置读写的意思.

    相关文章

      网友评论

          本文标题:8.4随机访问

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