linux lseek函数怎么用

linux lseek函数怎么用,第1张

Linux的lseek函数用来控制一个打开的文件读写位置,它的函数原型如下:off_t lseek(int fildes,off_t offset ,int whence)参数的用法:fildes参数为一个已打开的文件描述符;参数offset为读写位置的位移数,这个位移数是根据参数whence来确定的;whence参数分为下列三种:SEEK_SET:表示offset用来直接设置读写位置。SEEK_CUR:表示以目前的读写位置往后增加offset个位移量。SEEK_END:表示将读写位置指向文件尾后再增加offset个位移量。当whence值为SEEK_CUR或SEEK_END时,参数offet允许负值出现。当lseek调用成功时返回目前的读写位置,也就是距离文件开头多少个字节。若有错误则返回-1,errno会存放错误代码。下面是几个使用示例:将读写位置移到文件开头:lseek(myfile, 0, SEEK_SET)将读写位置移到文件尾:lseek(myfile, 0, SEEK_END)想要取得目前文件位置:off_t cur=lseek(myfile, 0, SEEK_CUR)注意:使用lseek函数需要包含以下头文件:#include <sys/types.h>#include <unistd.h>

其实试试就行了。

lseek() 就是把当前文件描述符的位置设到哪里,然后读写就从哪里开始了<在正常情况下>。

而你所考虑的,其实已经与seek无关了。

写个最简单的demo:

一个文件里有 abcd 四个字母。然后你直接open()找个文件,然后在文件的开头<0偏移处>,写一个r字母进去。然后保存。再然后读取看看,是只有r 呢? 还是rbcd呢? 还是rabcd呢?

-------------

假设已经存在一个 text.txt 文件,里面有 "abcd".

open(text.txt)

write()<一个字节的 r>

close()

--------------

open(text.txt)

read()

printf()

close()

-------------


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7256982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存