首页编程lseek(linux lseek函数怎么用)

lseek(linux lseek函数怎么用)

编程之家2023-11-08143次浏览

很多朋友对于lseek和linux lseek函数怎么用不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

lseek(linux lseek函数怎么用)

linux lseek函数怎么用

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个位移量。

lseek(linux lseek函数怎么用)

当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>

lseek(linux lseek函数怎么用)

#include<unistd.h>

问一个关于lseek函数的效率问题

lseek是库函数。

库函数就是C++最基本的函数,也就是说没有这些东西无法定义C++。

C++的制定标准,并不决定库函数的底层是如何实现的,主要决定实现结果和大致逻辑。

所以,对于不同系统不同型号机器的lseek,它的实现是不一样的。

在大多数系统中,lssek的执行只是改变一个内存中的值。计算机读取磁盘很慢,而内存很快,于是操作系统在内存中会事先保存好多值,当下一个读盘周期开始的时候,计算机会以最优化的读取顺序读取内存中设置的磁盘位置,lssek改变的就是那个位置。

所以耗时依赖你的系统和硬件,10000比100未必慢

文章到此结束,希望我们对于lseek和linux lseek函数怎么用的问题能够给您带来一些启发和解决方案。如果您需要更多信息或者有其他问题,请随时联系我们。

location.assign,javascript的location用法论坛推广,怎么进行论坛推广