文件IO和标准IO等一些闲杂琐碎

个人杂记:

缓冲区:

 IO分为标准IO和文件IO

按照是否有缓冲区操作来分:

有缓冲区操作的(标准IO

没有缓冲区操作的(文件 IO
标准 IO
1. 标准 IO 是库函数( ANSI C )提供的、
2. 跨平台
3. 有缓冲机制
4. 文件流(指针)
文件 IO
1. 文件 IO 是系统调用( POSIX 、可移植操作系统接口、 Unix )提供的
2. 不能跨平台
3. 没有缓冲机制
4. 文件描述符(整型、数组下标)
标准IO:缓冲方式:全缓冲、行缓冲、不缓冲
全缓冲:缓冲区满或者强制刷新缓冲区;
行缓冲:遇到换行符或者强制刷新缓冲区;
不缓冲:不缓冲( stderr
文件的打开:
参数 1 :要打开的文件(可以带路径)
参数 2 :打开的模式
r : 以只读的方式打开文件,文件存在则打开,不存在则报错
r+ : 以读写的方式打开文件,文件存在则打开,不存在则报错
w : 以只写的方式打开文件,文件存在则打开,文件不存在则新建
w+ : 以读写的方式打开文件,文件存在则打开,文件不存在则新建
a : 以追加(只写)的方式打开文件,文件存在则打开,不存在则新建
a+ : 以追加(读写)的方式打开文件,文件存在则打开,不存在则新建
b : 以二进制的形式
返回值:成功:打开的文件的文件流指针
失败: NULL+ 错误码
标准IO:
操作文件:
1..按字符读写:fgetc()
函数参数:想要从中读取字符的文件流指针
函数返回值:读到的内容
模拟CAT命令:

 fputc()

参数 1 :要写入的数据
参数 2 :要往哪个文件写

模拟CP命令

 2.按行读写:

fgets()
参数 1 :把内容读到哪里去、
参数 2 :读的大小
参数 3 :从哪个流中读
返回值:成功内容读到 s 中 失败 NULL

fputs()
参数 1 :要写入的字符串
参数 2 :要写入的流
返回值:成功:成功写入的个数,失败: EOF -1

统计一个文件中有多少行

 3.按对象读写:

fwrite()
参数 1 :从哪里写
参数 2 :每一次写多少
参数 3 :一共写多少
参数 4 :写给谁
函数返回值:成功:成功写入的个数,失败, 0

fread()
参数 1 :读到哪
参数 2 :每一次读多少个
参数 3 :一共读多少个
参数 4 :从哪读
函数返回值:成功,读到的个数,失败 0

4. 按格式化读写:
fprintf()
参数 1 :要输出的流
参数 2…… printf
fscanf()
参数:要关闭的文件流指针
返回值:成功返回 0 ,失败返回 -1 和错误信息
文件的其他相关函数:
强制刷新缓冲区:
fflush()
函数参数:要刷新的流
判断是否到末尾:
feof()
函数参数:需要判断的流
函数返回值:成功 1 ,失败 0
fseek() 移动光标:
参数 1 :要跳的流
参数 2 :移动的大小
参数 3 :从哪里移动
SEEK_SET :文件开头
SEEK_CUR :光标当前位置
SEEK_END :文件结尾
ftell() 获取当前文件的光标所在位
参数:要判断的流
获取文件的大小

 

time()函数

函数参数:如果不为空,函数返回值也可以返回到 tloc 所指向的空间中
返回值:从 1970-1-1 0 0 0 到现在的秒数
文件IO:
文件打开:
int  open()
参数 1 :要打开的文件名(可以带路径)
参数 2 :打开的方式
O_RDONLY :只读
O_WRONLY :只写
O_RDWR :可读可写
---------------------------------
O_CREAT : 文件不存在则新建
参数 3 :创建的文件的权限
返回值:成功:打开文件的文件描述符,失败 -1 和错误码
文件掩码:保护数据的安全
 

 

文件操作:
read:
参数 1 :从哪读
参数 2 :读到哪
参数 3 :读多少
返回值:成功:读到的数,失败: -1 和错误码
write:
参数 1 :要给谁写
参数 2 :写的啥
参数 3 :写多少
返回值:成功:返回成功写入的个数,失败返回 -1 和错误码

 

对文件的 cp
文件的关闭:close()
函数参数:要关闭的文件描述符
函数返回值:成功 0 , 失败返回 -1 和错误码
对目录文件进行操作:
打开目录文件: DIR *opendir()
参数:要打开的目录文件
返回值:成功:指针,失败: NULL 和错误码
操作文件:
读:
readdir()
参数:读取的目录
返回值:成功返回一个成员的信息,失败返回 NULL
动态库和静态库:

创建库:

静态库:

 动态库:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值