文件I/O

Stdio.h :标准输入输出
I/o:输入输出(站在计算机的角度,以计算机位置中心进行读写)
IO  input  output

Linux中一切皆文件

所有的c标准头文件路径:/user/includer

Stdio.h的c文件在Linux系统中不叫stdio.c而是libc.so(位置/usr/lib)  so:动态库(共享库)

动态库:lib开头,so结尾

I: 键盘是标准输入设备 ====》默认输入就是指键盘  /dev/input
O: 显示器是标准输出设备 ==》默认输出就是指显示器
Linux操作系统当中IO都是对文件的操作
C一部分,任何支持标准C的系统都可使用标准IO实现文件存储
标准IO在UNIX上是对文件IO的封装

Man:

第一章    函数命令

第二章:系统调用函数(只存在linux)

第三章:库函数

第四章:设备文件

五章:etc:系统级别的配置 文件格式和

第六章:游戏

第七章:杂项

第八章:管理员命令

第九章:内核更新

使用man 手册查函数不是2,就是3

文件读写步骤:(打开,读写,关闭)

1.打开文件file

2.io操作,读写操作

3.关闭文件

1.Fopen

2.读写相关操作

   fopen:r/r+:文件必须存在

        FILE*:文件流指针

Vimdiff:文件内容对比

Stat:那到文件的详细信息

内存速度快,a.out在内存中

因为fgets要读的内容是字符串,所以会自动在读取的内容后面加\0

所以开的buf的空间应该尽可能比原有文件字节数长

Char buf[]中,[]内的数据长度指的是要打开的文件一行的长度

Fgets和fputs只能处理文本文件,不能处理图像

因为fgets和fputs每一次复制都是一个字符串,是以0为结束标志的,但是图片在内存中以二进制存放,有极大可能会出现00这样的数,fgets会将此误判为截断标志,那么复制的字节数就会远小于原有文件的字节数,导致数据丢失,因此不可用来处理图像。

文件分类:文本文件、二进制文件

流:FILE*:数据从文件中流出和流入所体现出来的字节流叫做流

流的分类:

二进制流:2001 \n

二进制数据的流

文本流:

ASCII码数据的流   \n  \t

FILE结构定义的对象FILE*称之为流对象,也叫文件流指针

stdin  FILE*   scanf ();
stdout         printf();
stderr

Cat:查看文本文件

Od:查看二进制文件(照片等)

格式

系统提供的三个流指针(FILE*):当a.out开始运行的时候,系统就会自动调用这三个流指针

Stdin:标准输入   相当于scanf使用

Stdout:标准输出

Stderr:标准错误输出,区别在于缓存区

Fread,fwrite

结构体清空可以像数组一样直接赋值0:{0}

也可以用memset置0

还可以用bzero函数清0

什么时候用箭头或者点:

指针的时候用箭头,变量的时候用点

一般情况下,这里是void*的时候,传的是二进制的

Char*的时候是字符串

可以写1也可以写4(指针数组),一次性就把四个全写进去

返回值是int:正常情况下是1

总结:

  1. 标准io:c库
  2. 文件操作:打开读写关闭 fgets/fputs(一行)

Fgets:遇到\0就停止写入了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值