目录
1.lseek函数
2.lseek函数实战
2.1宏SEEK_CUR的用法
2.2宏SEEK_END的用法
3.Open函数实战 - O_APPEND的用法
4.Linux在库函数中寻找相应的宏定义
1.lseek函数
off_t lseek(int fd,off_t offset,int whence);光标的偏移量
- fd:文件描述符
- offset:偏移量
- whence:
- SEEK_SET:参数offset即为新的读写位置
- SEEK_CUR:以目前的读写位置往后增加offset个偏移量
- SEEK_END:将读写位置指向文件尾后再增加offset个位移量,当whence值为SEEK_CUR或SEEK_END时,参数offset允许负值的出现。
- 返回值:文件读写距离文件开头的字节大小,出错返回-1
2.lseek函数实战
2.1宏SEEK_CUR的用法
- 终端输入 man 2 lseek,打开函数的描述,复制所需要的头文件和函数原型。
- vi damo.c 进入文件,写入程序
- gcc demo1.c -n demo 编译代码。删除旧的file,执行可执行文件file.
- cat file 发现file中什么内容也没有
- 终端输入vim file ,打开file,在file中写入hello world。
- ./demo ,重新运行程序,发现打印file文件从1偏移向后至6偏移处的内容。
2.2宏SEEK_END的用法
- vi demo1.c 进入编写程序。
- 发现代码编译后运行,发现每运行一次代码,file文件里的内容都会在旧的内容后面追加一次。 cat file ,查看file文件里面的内容。
3.Open函数实战 - O_APPEND的用法
- O_APPEND 表示追加,如果原来文件里面有内容,则这次写入会写在文件的最末尾。使用时,光标默认指向目标文件的末尾。
- 代码编译后运行,发现每运行一次代码,file文件里的内容都会在旧的内容后面追加一次。 cat file ,查看file文件里面的内容。
4.Linux在库函数中寻找相应的宏定义
- 终端输入 cd /usr/include/,进入include 目录
- 输入 grep -nr "SEEK_CUR" ./
- vim unistd.h 进入宏所在的文件