linux系统编程之lseek帮助文档

通过man 2 lseek可以查看linux中的系统函数lseek函数的帮助文档,为了更好的学习,我把这些重要内容翻译过来

 1 NAME
 2        lseek - reposition read/write file offset//重置读或写文件的偏移量
 3
 4 SYNOPSIS//摘要
 5        #include <sys/types.h>//如果要使用lseek函数,需要包含这两个头文件
 6        #include <unistd.h>
 7
 8        off_t lseek(int fd, off_t offset, int whence);//lseek的声明格式
 9
10 DESCRIPTION//描述
11        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:
13 //lseek()函数的作用是,重置和文件描述符fd关联的打开的文件的偏移量,把这个偏移量重置为参数offset,在重置时要根据指令whence来做。whence的可包含的指令如下:
14        SEEK_SET
15               The offset is set to offset bytes.//如果whence的指令是SEEK_SET,则文件偏移量设定为参数offset大小的字节
16
17        SEEK_CUR
18               The offset is set to its current location plus offset bytes.//如果whence的指令是SEEK_CUR,则文件偏移量设定为当前位置加上offset大小的字节
19
20        SEEK_END
21               The offset is set to the size of the file plus offset bytes.//如果whence的指令是SEEK_END,则文件偏移量设定为文件大小再加上offset大小的字节
22
23        The lseek() function allows the file offset to be set beyond the end of the file (but this does not change  the
24        size  of the file).  If data is later written at this point, subsequent reads of the data in the gap (a "hole")
25        return null bytes (‘\0‘) until data is actually written into the gap.//lseek()函数允许把文件的偏移量设置的值超过文件的结束(虽然把偏移量设定的值超过了文件的结尾,但是并不会改变文件大小)。如果数据后来被写入到这个偏移量位置,在把数据真正写入这个从文件末尾到偏移量之间的空间,那么随后在读取从文件末尾到设置的偏移量的位置,返回的都是‘\0’,
26 RETURN VALUE
27        Upon  successful completion, lseek() returns the resulting offset location as measured in bytes from the begin‐
28        ning of the file.  On error, the value (off_t) -1 is returned and errno is set to indicate the error.//当lseek成功完成,lseek()返回的偏移量是距离文件开头的偏移量,大小以自己为单位衡量。如果错误,返回值为-1,并设置errno的值
时间: 2024-10-13 01:05:56

linux系统编程之lseek帮助文档的相关文章

LINUX系统编程之IPC

LINUX系统编程之IPC(Inter Processes Communication) 一.信号 1.信号的产生 软件中断,异步通信,ctrl+c,kill函数,kill命令,硬件异常(段错误),软件异常 2.进程收到信号后可以用如下方法处理: 执行系统默认动作(终止),忽略此信号,执行自定义信号处理函数. 3.信号操作函数 kill(), alarm(), raise(), abort(), pause() typedef void (*sighandler_t)(int);signal()

linux系统编程之I/O内核数据结构

文件在内核中是用三种数据结构进行表示的 (1)文件描述符表:文件描述符表是一个结构体数组,数组的下标就是open函数返回的文件描述符. 文件描述符表的每一个记录有两个字段   *文件描述符标志 * 文件表项指针 (2)文件表项:一般含有一下内容 * 文件状体标志,读,写,追加,同步,阻塞,非阻塞等 * 当前文件偏移量 * i节点指针 * 引用计数 (3)i节点:一般含有一下记录 * 文件类型 * 对该文件的操作函数的指针 * 当前文件的长度 *文件的所有者 * 文件的权限 * 指向文件数据在磁盘

Linux系统编程之IO_缓冲和非缓冲

下面是一段类似日志记录的代码,已获取通讯的报文内容和当时的环境参数内容,就是创建一个文件,使用标准IO的fopen.fprintf进行输出记录.但是在调试中,刚开始我就傻眼了,文件创建成功了,但是实时查看竟然没有任何数据记录.经过半天的担惊受怕和反复排查,发现是被标准IO的缓冲机制摆了一道,惭愧呀... 代码转自http://blog.csdn.net/mr_chenping/article/details/9166937 下面给出一个示例程序,模拟我的项目程序: #include <stdio

Firefly官方教程之DBentrust使用文档

1.dbentrust说明 该模块主要是对数据库与memcached存储的处理.里面封装了从memcached数据到python对象的映射.可以以操纵python对象的方式进行memcached中存储的数据的操作,只要在不同的进程中实例化相同名称的memobject对象,就能保证对象中的数据是一致的.还包含了将这个对象中的数据同步到数据库的处理方法. 2.结构解析 <ignore_js_op> MemObject类规定了数据的格式,所有的数据都存储在memcached中,为了区分不同的数据,每

Firefly官方教程之Distributed使用文档

distributed使用文档1.distributed说明该模块主要封装了各个服务进程间进行通信的方法.node子节点域root根节点进程中的接口调用返回的都是延迟对象.关于延迟对象的使用,详见twisted中Deferred对象.2.结构解析 <ignore_js_op> PBRoot,root节点对象ChildsManager,子节点管理基类Child对象对应的是连接到本服务进程的某个服务进程对象.称为子节点对象RemoteObject远程调用对象,子节点服务进程中实现.可以通过这对象去

Firefly官方教程之Netconnect使用文档

1.distributed说明该模块包含了服务端与客户端通信的一些处理方法,包括发送数据的封装,协议头的封装,tcp通信时进行分包,处理粘包问题.2.结构解析 LiberateFactory,协议工厂,所有连接的本质,服务端与客户端通信的这一行为的形象化,它包含三个部分:1)LiberateProtocol,通信协议类,连接建立.断开后的操作,发送数据等都由它来控制2)DataPackProtoc,数据包协议的定义,所有的数据解析都要遵守它定制的规则3)ConnectionManager,连接管

[转载]linux上用PHP读取WORD文档

在linux上用PHP读取WORD文档,其实是使用了 antiword程序把word文档转化为txt文档. 再使用php执行系统命令调用而已. 具体操作如下: 1.安装antiword 官方站:http://www.winfield.demon.nl/ 下载地:http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz 下载完,解压,进入目录 使用命令 make && make install 即可完成安装. 安装时,自动安装到了/roo

clamav Linux下的杀毒软件安装使用文档

文档目的 在linux上安装clamav杀毒软件,更新病毒库,并完成查毒工作 常用命令 /usr/local/clamav/freshclam/freshclam    升级版本库 /usr/local/clamav/clamscan/clamscan  -r  /home     查/home下的文件病毒 所需软件 clamav-0.94.1.tar.gz 系统环境 操作系统:Linux localhost.localdomain 3.10.0-327.36.3.el7.x86_64 #1 S

Linux下批量转换成pdf文档

利用ubuntu,ubuntu 12.04是有libreoffice的. 把文档放到某个位置,方便得场景一是: 文档在winxp下写. Linux下类似于smbmount -o rw,username=tangjian,password=bbs //192.168.27.141/d$ /mnt/tjx 利用Makefile格式 设法把下列类似的命令放进去. libreoffice --invisible -convert-to pdf -outdir . Linux系统命令及其使用详解.doc