当前位置: 首页 > news >正文

文件IO813

标准IO文件定位:

fseek函数:

功能:将stream流文件中的文件指针从whence位置开始偏移offset个字节的长度。

int fseek(FILE *stream , long offset, int whence);
FILE *stream 指的是所需要定位的文件(文化定位前提是文件要被打开)
LONG offset 指的是流指针的偏移量,即将指针偏移几个字节
int whence 指的是流指针从文档的哪个位置开始偏移。whence:有以下可选参数:
SEEK_SET 从文本的开头位置开始。
SEEK_CUR 从当前的位置开始
SEEK_END 从文件的末尾位置开始返回值:
成功:则返回0
失败:返回-1.类似能够操纵流指针定位的函数:
rewind()
其相当于
feek(FILE *P,o,SEEK_END );

ftell函数

long ftell(FILE *stream )
功能:获取到当前流指针所在的位置参数:stream 指的是所要判断流指针位置的文件。返回值:
成功:一般以文件指针到文本开始的距离字节数为返回值。
失败:-1

文件IO

定义:操作系统为了方便用户使用系统功能而对外提供的一组系统函数,称之为系统调用,其中有个文件IO。
一般是用于对设备文件进行操作,当然也可以对普通文件进行操作。

特性:
没有缓冲区。
操作对象不是在流,而是在文件描述符FILE*。

其中文件描述符的编号的范围:0~1023
内核每打开一个文件就会获得一个文件的描述符,计算机同时可以打开1024个文件不关闭。

每个程序在启动时操作系统会默认为其打开三个描述符于流对象相匹配:

0号标识符表示STDIN_FILENO 即stdin
1号标识符表示STDOUT_FILENO 即stdout
2号标识符表示STDERR_FILENO 即stderr.
stdin ,stdout,stderrd都是文件描述符

open函数:

作用:打开文件。

int open(const char *pathname,int flags,int mode);其中const char *pathname指的是文件路径int flags 指的是文件标志位,其决定打开文件的权限
flag有:O_CREATE 创建文件,
O_RDONLY 文件只读,
O_WRONLY 只写文件,
O_RDWR 读写文件,
O_APPEND 文件追加,
O_TRUNC 文件清空。int mode指的是所创建出文件的权限设定。一般是设定为0666,按上一个博客的八进制权限编码转换来理解。返回值:成功时返回文件描述符

write函数:

ssize_t write(int fd,const void *buf,size _t count);
int fd :指的是所要写入的文件标识符
const void *buf指的是缓冲数组的地址
size_t count 指的是要写入文件的数据个数返回值:
成功:返回实际写入的个数。
失败:返回EOF

read函数:

size_t read(int fd,const void *buf,size_t count);
fd指的时文件标识符。
buf指的是所读数据存放变量地址
count指的是所要读取数据的个数。返回值:
当成功时返回:读取数据的个数
失败:返回EOF

lseek函数:

off_t lseek (int fd, off_t offset,int whence);
int fd 指的是文件表示符。
off_t offset指的是偏移量。
int whence指的是从哪里开是偏移offset:正值为向后偏移,负值为向前,0是在原地。 whence 取值同样是:
SEEK_SET
SEEK_CUR
SEEK_END返回值:
成功返回偏移量,失败返回-1
http://www.lryc.cn/news/423382.html

相关文章:

  • STP(生成树)的概述和工作原理
  • 从AGV到立库,物流自动化的更迭与未来
  • 阴阳脚数码管
  • 【Vue3-Typescript】<script setup lang=“ts“> 使用 ref标签 怎么获取 refs子组件呢
  • npm 超详细使用教程
  • TypeScript函数
  • 中海油某海上平台轨道巡检机器人解决方案
  • 【NXP-MCXA153】SPI驱动移植
  • Python if 编程题|Python一对一辅导教学
  • 机器学习——第十一章 特征选择与稀疏学习
  • 花式表演无人机技术详解
  • 服务器那点事--防火墙
  • C:每日一题:单身狗
  • SQL之使用存储过程循环插入数据
  • 智慧楼宇公厕系统小程序,提高卫生间管理使用效率
  • 深度剖析:云数据库与传统数据库的显著差异
  • # 利刃出鞘_Tomcat 核心原理解析(六)
  • 双亲委派模型
  • Linux下ETCD安装、配置、命令
  • 【QT】静态库与动态库
  • R的行和列命名和类型的转换
  • 某通用系统0day审计过程
  • windows C++-高级并发和异步(一)
  • Java FX 学习
  • 【走迷宫】
  • linux(debian)迁移var数据到已分配逻辑卷的物理盘
  • 【产品那些事】什么是应用程序安全态势管理(ASPM)?
  • cocosUI多分辨率适配
  • 无法加载到主类
  • 深入理解Kafka核心设计与实践原理_03