LSEEK64 - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
lseek64-重新定位64位读/写文件的偏移量
语法
#定义_LARGEFILE64_SOURCE / 参见feature_test_macros(7)/
#包括
#包括
off64_t lseek64(int fd,off64_t offset,int whence);
说明
lseek(2)系列函数将与文件描述符fd关联的打开文件的偏移量重新定位为相对于文件的开始,当前位置或结尾的偏移字节,当其值为SEEK_SET,SEEK_CUR或SEEK_END时,分别。
有关更多详细信息,返回值和错误,请参见lseek(2)。
有四个接口可用:lseek(2),lseek64(),llseek(2)和_llseek(2)。
lseek()
原型:
off_t lseek(int fd, off_t offset, int whence);
lseek(2)使用off_t类型。在32位架构上,这是一种32位带符号类型,除非使用
#define _FILE_OFFSET_BITS 64
在这种情况下,它是64位带符号的类型。
lseek64()
原型:
off64_t lseek64(int fd, off64_t offset, int whence);
库例程lseek64()使用64位类型,即使off_t是32位类型也是如此。它的原型(和类型off64_t)仅在以下情况下可用:
#define _LARGEFILE64_SOURCE
lseek64()函数自glibc 2.1起可用,并且已定义为llseek()的别名。
llseek()
原型:
loff_t llseek(int fd, loff_t offset, int whence);
loff_t类型是64位带符号类型。库例程llseek()在glibc中可用,无需特殊定义即可工作。但是,glibc标头不提供原型。用户应将上述原型或等效形式添加到自己的源中。当用户抱怨由于e2fsck(8)的编译错误而导致数据丢失时,glibc 2.1.3添加了链接时警告
"llseek'函数可能很危险;请改用
lseek64'。"
如果希望进行无警告的编译,则此功能将无法使用。
_llseek()
在32位体系结构上,这是用于实现上述所有功能的系统调用。原型是:
int _llseek(int fd, off_t offset_hi, off_t offset_lo, loff_t *result, int whence);
有关更多详细信息,请参见llseek(2)。
64位系统不需要_llseek()系统调用。相反,它们具有支持64位文件偏移量的lseek(2)系统调用。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
lseek64() | Thread safety | MT-Safe |
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。