lseek()函数

lseek()有个特殊的用途,确定文件是常规文件还是设备。
<pre lang="c" escaped="true">
off_t currpos;
ourrpos = lseek(fd, 0, SEEK_CUR);
if (ourrpos == -1)
{
printf("this is drive file");
}
</pre>
这种方法用来确定文件或者设备是否可以设置偏移量,常规文件都可以设置偏移量,而设备一般是不可以设置偏移量的,如果设备不支持lseek(),则lseek返回-1, 并将errno设备为ESPIPE.

<pre lang="c" escaped="true">
#include <sys/types.h>
#include <unistd.h>

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

DESCRIPTION
The lseek() function repositions the offset of the open file associated with the file descriptor fd to the argument offset according to the directive whence as
follows:

SEEK_SET
The offset is set to offset bytes.

SEEK_CUR
The offset is set to its current location plus offset bytes.

SEEK_END
The offset is set to the size of the file plus offset bytes.

</pre>

时间: 2024-10-24 10:48:19

lseek()函数的相关文章

Linux文件I/O编程(二)lseek函数

文件I/O编程处理open.read.write.close,等必要函数对文件进行读写操作外,lseek.fcntl也是I/O编程很重要的函数. lseek函数 lseek函数主要用来移动当前读写位置,第一个参数是文件描述符fd,第二个参数是偏移距离,第三个参数是文件内容指针宏,分别有SEEK_SET(文件头),SEEK_CURR(当前位置),SEEK_END(文件尾部).该函数的执行成功返回文件当前位置的偏移量,若是失败返回-1. 改变文件位置指针很重要,如果处理不好会出现读写文件时读取错误数

文件IO详解(七)---lseek函数详解

lseek函数用来设置当前文件偏移量. ====================================================== 函数原型: 函数参数: fd:要操作的文件描述符 offset:基于whence参数的偏移量 whence:参考点位置 返回值: 调用成功时返回当前相对于文件开头的偏移量,以字节为单位 调用失败时返回 -1,并修改errno的值 ======================================================= when

4.lseek函数及共享文件

4.1.lseek函数介绍 (1)当我们要对1个文件进行读写时,首先需打开该文件,则我们读写的所有文件都是动态文件:动态文件在内存中就是以文件流的形式存在的. (2)文件流很长,里面有很多个字符,我们需要确定当前正在操作的是哪个位置:GUI模式下的软件用光标来标识当前正在操作文件流的哪个位置:在动态文件中则通过文件指针(即Vnode结构体中的1个元素)来标识当前正在操作文件流哪个位置:文件指针不能被直接访问,linux系统使用lseek函数来访问该文件指针. (3)当我们打开1个空文件时,默认情

lseek函数

lseek函数用于设置文件偏移量. 每个打开的文件都有一个与其相关联的“当前文件偏移量”(current file offset).它通常是一个非负整数,用以度量从文件开始处计算的字节数.通常,读写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数.按系统默认的情况,当打开一个文件时,除非制定O_APPEND选项,否则该偏移量被设置为0. #include<unistd.h> off_t lseek(int filedes, off_t offset, int whence); 对参数

Linux ---lseek() 函数

每个打开的文件都有一个与其相关连的"当前文件偏移量"( current file offset ).它通常是一个非负整数,用以度量从文件开始处计算的字节数.通常,读.写操作都从当前文件偏移量开始,并使偏移量增加所读写的字节数.按系统默认情况,当打开一个文件时,除非指定 O_APPEND 选项,否则该偏移量设置为 0. lseek调用仅将当前的文件偏移量记录在内核中,它并不引起任何的 I/O 操作.然后,该偏移量用于下一个读或写操作. 函数原型 #include<unistd.h&

【UNIX环境高级编程】文件 IO 操作 - 基础函数 open close creat lseek write read 详解

博客地址 : http://blog.csdn.net/shulianghan/article/details/46980271 一. 文件打开关闭操作相关函数介绍 1. open 函数 (1) open 函数简介 open 函数解析 : -- 函数定义 : #include <fcntl.h> int open(const char *path, int oflag, ...); -- 函数作用 : 打开或者创建一个文件; -- 返回值 : 打开文件成功, 返回文件描述符; 如果失败, 返回

lseek()函数与fseek()函数详解

C语言lseek()函数:移动文件的读写位置 头文件:  #include <sys/types.h>  #include <unistd.h> 定义函数: off_t lseek(int fildes, off_t offset, int whence); 函数说明: 每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时, 读写位置会随之增加,

文件I/O函数(open,read,write,lseek,close)

大多数unix文件I/O只需要用到5个函数:open,read,write,lseek,close.这些函数都为不带缓存的I/O,不带缓存指的是每个read和write都调用内核中的一个系统调用.这些函数使用时要用到三个头文件:sys/types.h,sys/stat.h,fcntl.h #include<fcntl.h> #include<types.h> #include<sys/stat.h>/*此头文件里面定义了mode标志*/ open函数:int open(

linux文件函数-lseek

linux文件函数-write 一 定位文件 函数名:lseek 函数原形: off_t lseek(int fd, off_t offset, int whence) 函数功能:移动文件指针 所属头文件: #include<sys/types.h> #include<unistd.h> 返回值: 成功:返回移动后的文件指针到文件开头的字节数即偏移量 失败:返回-1 参数说明 fd:要定位的文件的描述符 offset:偏移量,整数向后移,负数向前移 whence:文件指针的位置 S