文件操作(偏移量)
时间:2022-05-03
本文章向大家介绍文件操作(偏移量),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
通过函数lseek可以改变文件当前的读写位置。
函数原型:
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
参数属性:
offset:表示从文件的whence位置开始偏移的位置大小。
whence:表示文件偏移的位置
有三个选项:
SEEK_SET:表示从文件开始位置偏移
SEEK_CUR:表示从文件当前的读写位置偏移
SEEK_END:表示从文件的结束位置偏移
seek.c
int main()
{
//打开文件
int fd = open("b.bat",O_CREAT|O_RDWR);
if(fd == -1)
perror("错误:"),exit(-1);
//准备数据
char *str = "abcdefghigklmn";
//写入数据
write(fd,str,strlen(str));
//准备空间
char buf[32] = {0};
//将文件的读写位置移动到文件的开始
lseek(fd,0,SEEK_SET);
//读取5个字节的数据
read(fd,buf,5);
//输出
puts(buf);
//关闭文件
close(fd);
}
文件偏移量的移动时机:
1、lseek主动移动偏移量
2、read会移动偏移量
3、write会移动偏移量
进程 --》运行--》进程在内存中存在一个进程表项(文件表) //文件表在内核管理的内存空间中
文件最开始运行时,有三个“文件描述符”已经打开:0,1,2
当使用open函数打开一个文件的时候,系统就会创建一个文件表
文件表的内容:
1、文件状态标志:O_RDONLY O_WRONLY...
2、文件偏移量(刚打开的文件偏移量为0)
3、V节点指针:指向“v节点表” //V节点表(磁盘的文件系统上):V节点信息、I节点信息、文件大小
- 【死磕Java并发】—–深入分析synchronized的实现原理
- phalcon-进阶篇1(过滤与清理)
- phalcon-入门篇9(view层基础使用)
- PhalApi视频教程
- 【学术】一文搞懂自编码器及其用途(含代码示例)
- PhalApi-Zip--压缩文件处理类
- PhalApi-Xhprof -- Facebook开源的轻量级PHP性能分析工具
- OpenAI发布8个模拟机器人环境以及一种HER实现,以训练实体机器人模型
- PhalApi-APK--APK文件解包处理
- [喵咪PHP]页面显示空白问题
- 数据库中间件 Sharding-JDBC 源码分析 —— 结果归并
- PhalGo-Request
- PhalApi-Excel
- PhalGo-Viper获取配置
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux服务器间文件实时同步的实现
- centos7 设置grub密码及单用户登录实例代码
- Linux命令行快速技巧之定位一个文件的方法
- Linux低电量自动关机的实现方法
- ubuntn备份方法总结(四种)
- linux让程序开机自动运行最简单的方法
- centos克隆linux虚拟机的完整步骤分享
- CentOS7.4下MySQL5.7.28二进制方式安装的方法步骤
- centos6.5下安装zabbix2.4的教程图解
- linux虚拟机配置静态IP地址的完整步骤
- Linux下Mysql定时任务备份数据的实现方法
- Linux系统下快速配置HugePages的完整步骤
- 解决Linux Tensorflow2.0安装问题
- 工作中常用到的Linux命令总结
- Linux中把用户添加到组的4个方法总结