lseek函数

lseek函数转自:https://baike.baidu.com/item/lseek/6385407?fr=aladdin相关函数dup,open,fseek表头文件#include#include定义函数off_tlseek(intfilde,off_toffset,intwhence);

大家好,又见面了,我是你们的朋友全栈君。

转自:https://baike.baidu.com/item/lseek/6385407?fr=aladdin

相关函数

dup,open,fseek



表头文件

#include<sys/types.h>
#include<unistd.h>



定义函数

off_t lseek(int filde,off_t offset ,int whence);



函数说明

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



参数

whence为下列其中一种:(SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2).
SEEK_SET 将读写位置指向
文件头后再增加offset个位移量。
SEEK_CUR 以目前的读写位置往后增加offset个位移量。
SEEK_END 将读写位置指向文件尾后再增加offset个位移量。
当whence 值为SEEK_CUR 或SEEK_END时,参数offet允许负值的出现。
下列是较特别的使用方式:
1) 欲将读写位置移到文件开头时:
lseek(int fildes,0,SEEK_SET);
2) 欲将读写位置移到文件尾时:
lseek(int fildes,0,SEEK_END);
3) 想要取得目前文件位置时:
lseek(int fildes,0,SEEK_CUR);



返回值

当调用成功时则返回目前的读写位置,也就是距离文件开头多少个字节。若有错误则返回-1,errno 会存放
错误代码
可能设置erron的错误代码:
EBADF: fildes不是一个打开的文件描述符。
ESPIPE:文件描述符被分配到一个管道、套接字或FIFO。
EINVAL:whence取值不当。
[1]
 



附加说明

Linux系统不允许lseek()对tty装置作用,此项动作会令lseek()返回ESPIPE。
SEEK_SET 等同于数字0 例如 :lseek(int fildes,0,SEEK_SET);=lseek(int fildes,0,0);
SEEK_CUR 等同于数字1 例如 :lseek(int fildes,0,SEEK_CUR);=lseek(int fildes,0,1);
SEEK_END 等同于数字2 例如 :lseek(int fildes,0,SEEK_END);=lseek(int fildes,0,2);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148326.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 事务ACID理解

    事务ACID理解事务管理(ACID)谈到事务一般都是以下四点原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency)事务前后数据的完整性必须保持一致。隔离性(Isolation)事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔…

    2022年10月12日
    0
  • SQL 笛卡尔积现象

    SQL 笛卡尔积现象笛卡尔积的出现是在多表进行联合查询的时候会出现的一种情况。比如有两张表:表一:表二:在进行查询的时候:selectstudentname,SubjectnamefromStudent,subject会出现下面的情形,也就是笛卡尔现象,表一有5条记录,表二有3条记录,那么对于第一张表而言有5种选择,而对于第二张表来说有3种选择。所以结果就是5*3种选…

    2022年7月27日
    6
  • Java垃圾收集学习笔记

    Java垃圾收集学习笔记

    2020年11月12日
    191
  • ResNet34_resnetv2

    ResNet34_resnetv2pytorch版本:https://blog.csdn.net/github_36923418/article/details/83273107keras版本:https://blog.csdn.net/m0_37477175/article/details/83861678

    2022年10月5日
    0
  • mvc中的OutputCache[通俗易懂]

    mvc中的OutputCache[通俗易懂]mvc4中有一个标记属性OutputCache,用来对ActionResult结果进行缓存,如何理解呢?概括地说,就是当你的请求参数没有发生变化时,直接从缓存中取结果,不会再走服务端的Action代码

    2022年7月2日
    26
  • gif录屏与gif图片合成工具「建议收藏」

    gif录屏与gif图片合成工具「建议收藏」现在好多gif图片合成是收费的,而且可能还不太好用,这里分析的gif合成软件是个比较老的软件,但是用着还是挺好用的。还有一个录屏软件,录制保存为gif文件。百度网盘分享,无需积分:链接:https://pan.baidu.com/s/1HukTW6yJvqoUiqbzXuY5bQ提取码:pvc4欢迎关注微信公众号,分享更多实用工具:…

    2022年9月15日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号