标准IO定位,读写

feof:
检测文件是否到达结尾

ferroe:
检测文件是否发生错误

标准IO之文件定位
fseek()


SEEK_END 指向最后一个字节的后一个,继续加,写文件,会将文件扩大

ftell()


获取文件大小

pos指向最后一个字节的下一位,如果需要进行复制操作,需要将pos复位到第一个字节

rewind()
文件复位,等效于 fseek(stream, 0, SEEK_END)

缓冲区:为了匹配高速和低速设备(内核里)

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

文件IO 是一个基于Linux内核的没有缓存的IO机制

特性:

1、没有缓存区

2、操作对象不再是流(FILE*),而是文件描述符(int 0-1023)

3、文件描述符

很小的非负整数 int 0 - 1023

内核每打开一个文件就会获得一个文件描述符

unistd.h (posix 标准库)更靠近内核

stdio.h(c 库)

步骤:

open

read / write

close

函数接口:
open
打开或创建一个文件

pathname 文件名

flags 标签

中间用 | 隔开

mode 读写执行权限 (0666 / 0777)

返回值:

成功 返回文件描述符(fd)

失败 返回 -1

write
通过文件描述符向文件中输入字符串

fd 文件描述符

buf 要写入文件的字符串的首地址

count 写入字符的个数(填写buf的有效长度)

返回值:

成功 返回实际写入的个数(0不代表错误)

失败 返回 -1

close();


read
通过文件描述符读取文件中的数据

fd 文件描述符

buf 存放数据空间的首地址

count 要读到数据的个数(可比实际的内容略大)

返回值:

成功 返回读到数据的个数

失败 返回-1

读到文件结尾 返回0

lseek
定位光标的位置

fd 文件描述符

offset 偏移量 正:向后偏移 负:向前偏移 零:不偏移

whence SEEK_SET SEEK_CUR SEEK_END

返回值:

成功 返回偏移量

失败 返回-1

  • 18
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值