C语言lseek()函数

  • Post author:
  • Post category:其他




C语言lseek()函数:移动文件的读写位置




(1)





关函


数:


dup, open, fseek


.




(2)


头文件:


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




(3)


定义函数:


off_t lseek(


int fildes, off_t offset, int whence);




(4)


函数说明:





每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如


O_APPEND)


, 则读写位置会指向文件尾. 当


read()





write()


时, 读写位置会随之增加,


lseek()


便是用来控制该文件的读写位置. 参数


fildes


为已打开的文件描述词, 参数


offset


为根据参数whence来移动读写位置的位移数.




(5)


参数


whence


为下列其中一种:





SEEK_SET


参数


offset


即为新的读写位置.





SEEK_CUR


以目前的读写位置往后增加


offset


个位移量.





SEEK_END


将读写位置指向文件尾后再增加


offset


个位移量. 当


whence


值为


SEEK_CUR





SEEK_END


时, 参数


offet


允许负值的出现


.




(6)


下列是教特别的使用方式:





1) 欲将读写位置移到文件开头时:


lseek(int fildes, 0, SEEK_SET)


;





2) 欲将读写位置移到文件尾时:


lseek(int fildes, 0, SEEK_END)


;





3) 想要取得目前文件位置时:


lseek(int fildes, 0, SEEK_CUR)


;







(7)


返回值:




当调用成功时则返回目前的读写位置, 也就是距离文件开头多少个字节. 若有错误则返回


-1, errno


会存放错误代码.





附加说明:


Linux


系统不允许


lseek()





tty


装置作用, 此项动作会令


lseek()


返回


ESPIPE.




版权声明:本文为qq_35537140原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。