Linux 系统 IO之 lseek 函数
Linux 系统 IO之 lseek 函数
文章目录
- Linux 系统 IO之 lseek 函数
- 1. lseek 函数
- 1.1 头文件包含
- 1.2 函数原型
- 1.3 函数功能
- 1.4 函数返回值
- 1.5 形参解释
- 2. 案例程序
1. lseek 函数
1.1 头文件包含
// 因为形参包含 off_t 类型,所以要包含 types.h
#include <sys/types.h>
#include <unistd.h>
1.2 函数原型
// off_t 用于文件大小和偏移量
// 在我的 Ubuntu 64 位系统中,本质位 long int
off_t lseek(int fd, off_t offset, int whence);
1.3 函数功能
lseek
主要用来重新定位被打开文件的位移量
根据其特性,还可以实现如下两个功能:- 获取文件的大小
- 对文件进行向后扩展(文件件位置标记向后偏移 N 个字节,并且需要在 N+1 位置写如一个数据)
1.4 函数返回值
- 返回值为
正数 N
:表示当前文件位置标记向后移动 N 字节 - 返回值为
复数N
: 表述当前文件位置标记向前移动 N 字节
1.5 形参解释
int fd
:文件描述符off_t offset
:与whence
组合使用int whence
:SEEK_SET
: 将文件位置标记设置为从头部偏移offset
字节 位置SEEK_CUR
:将文件位置标记设置为从当前位置偏移offset
字节 位置SEEK_END
:将文件位置标记设置为从尾部偏移offset
字节 位置
2. 案例程序
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>int main()
{int fd = open("annNote", O_RDWR);if( -1 == fd){perror("open file");exit(1);} //参数 文件描述符 偏移量 位置// 获取文件长度int ret = lseek(fd, 0, SEEK_END);printf("file length = %d\n", ret);// 文件拓展(把文件变成更大的文件) 只能向后拓展ret = lseek(fd, 100, SEEK_END);printf("return value %d\n", ret);// 为实现文件拓展需额外操作在文件尾部任意写如一个字符write(fd, "#", 1); close(fd);return 0;
}
Linux 系统 IO之 lseek 函数相关推荐
- Linux系统编程 46 -lseek函数
学习笔记 lseek函数 文件偏移 以前有接触到fseek 库函数,lseek和它有点类似. #include <sys/types.h> #include <unistd.h> ...
- 【Linux系统IO函数】lseek函数
Linux系统IO函数-lseek函数 1.1 lseek函数与标准C库的fseek函数 lseek函数对应标准C库中的fseek函数 查看标准C库中的fseek函数使用说明: (shell输入) m ...
- 标准C库IO函数和Linux系统IO函数对比
标准C库IO函数和Linux系统IO函数对比 man 3 fopen #查看函数详情 虚拟地址通过mmu映射到真是的地址空间
- Linux系统IO分析工具之iotop常用参数介绍
Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...
- 【Linux系统编程】vfork() 函数详解
00. 目录 文章目录 00. 目录 01. vfork函数 02. fork和vfork区别 03. 父子进程地址空间 04. 附录 01. vfork函数 函数分析 #include <sy ...
- 【Linux系统编程】fork()函数详解
00. 目录 文章目录 00. 目录 01. 进程创建函数 02. 父子进程结构 03. 父子进程地址空间 04. 附录 01. 进程创建函数 #include <sys/types.h> ...
- Linux系统shell脚本之函数的使用
Linux系统shell脚本之函数的使用 一.函数解释 二.函数参数 1.参数注意事项 2.特殊参数说明 三.函数实例1 四.函数实例2 一.函数解释 1.函数(function)作用:函数可以在sh ...
- 【Linux系统编程学习】Linux系统IO函数(open、read、write、lseek)
此为牛客网Linux C++课程1.20课程笔记. 1.open函数 open函数有两种,分别是打开一个已经存在的文件和创建并打开一个不存在的文件. #include <sys/types.h& ...
- linux系统IO操作
本文重点说明下面内容: 什么是标准IO,什么是文件IO? 什么是Direct IO? O_SYNC标识有什么意义? 各个层面的缓存如何同步? 还在page cache中的脏页可以读写吗? IO路径上的 ...
最新文章
- sqoop安装及使用
- 四叶草引导linux教程,百科全书之黑苹果四叶草引导配置 boot讲解
- BIM标准化系列写作思路
- xhr的get和post请求的简单实现
- [模板] 洛谷 P1137 旅行计划 (拓扑排序)
- php7没有pecl,PHP7 pecl 安装 mongodb扩展 和 PHPLIB
- Mac电脑截图卡屏了怎么办?
- 小眼睛适合大框还是小框眼镜_【图】小眼睛适合什么眼镜框 这个禁忌千万不要犯_小眼睛_伊秀服饰网|yxlady.com...
- 在Firefox中以电影院风格观看YouTube视频
- 微信小程序wx.uploadFile 上传图片慢优化
- Unity自定义快捷键功能,支持动态改键(附工程文件)
- 表情识别(七)--面部表情识别阶段综述(2018.4)
- 相机的变焦,对焦和景深的理解和照相機的成像原理
- 服务器主板准系统怎么拆,主板准系统及电源装箱步骤完成_技嘉 GA-B85M-D3V_主板评测-中关村在线...
- 【matlab】Matlab中产生正态分布随机数的函数normrnd
- 用U盘给macbook 安装windows系统
- 计算机毕业设计Java星星电影购票网站(源码+系统+mysql数据库+lw文档)
- 我在CSDN的2022:突破零粉丝,4个月涨粉4000+,2023年目标5万+
- Django2.0服务器的零基础完全部署
- Java、JSP电费管理系统
热门文章
- 【测试基础】你写过测试计划和测试报告吗?
- 批量生成二维码系统源码 电脑+手机自适应代码 含安装搭建教程
- Elasticsearch Search API说明
- RTB--Real TimeBidding模式的互联网广告(实时竞价的广告投放)
- 计算机网络基础知识 全
- asp.net 从服务器上下载文件
- 原生JS八(Math对象,随机色)
- 计算机二级python 知识点篇(文件和数据格式化)
- 无法清空剪切板,另一程序正在使用剪切板,无法复制东西了
- 【源码及课件分享】Java实战项目之酒店客房管理系统_Java项目开发_Java项目实战