Linux文件编程(标准IO与文件IO)学习日记1
文件类型
b 块设备文件 硬盘
c 字符设备 鼠标、键盘
d 目录文件 文件夹
- 常规文件
l 软连接文件 类似windows的快捷方式
s socket 套接字文件 用于进程间及网络通信
p pipe管道 进程间通信
我们要知道在Linux中一切皆文件,我们可以通过操作文件的方式进行对各种文件的使用。
标准操作流程: 1、打开文件----> 2、读写增删查----> 3、关闭文件
fclose()----------------------------关闭操作的作用:
1、刷新流 2、关闭底层的文件描述符 3、释放相关的堆区空间
有两个方式进行系统操作:
1、库函数 ----标准IO 2、系统调用----文件IO
标准IO:
FILE* fopen(const char *pathname,const char *mode);
功能: 打开 pathname 这个名字的文件,关联一个流。 //流(stream)一个数据流
参数: pathname 写一个文件名
mode 写一个模式r(从头读),r+(从头读和写),w(写),w+,a(追加),a+
返回值: 成功--------- 一个FILE类型的一个指针
失败-------- NULL&errno会被设置来表明错误的原因
在使用的时候:FILE* fp = fopen (xxxx,xxxx);
//用fp这个流指针代表打开的文件。 (文件指针,流指针)
标准IO的读写操作:
fgetc/fputc //按字符读写
fgets/fputs //按字符串读写(按行读写)
fread/fwirte //按二进制读写
1、fgetc (FPILE * stream)
功能: 从文件中获取数据 //每次只能读一个字符
参数: 写要读文件的流指针 fp
返回值: 成功 返回读到字符 的ASCII码值
失败 或者读到文件结尾返回EOF(-1)
注意: EOF只是文件结束的标志,而真正的文件之并不存在EOF这个字符。
2、fputc(int c,FPILE * stream)
功能: 把数据输出到文件中 //每次只能读一个字符
参数: c //要输出过去的 字 符 数据
stream 要输出到的文件的流指针
返回值: 成功 返回输出的字符 的ASCII码值
失败 EOF(-1)
//手动EOF ------> ctrl+ d 按键
在系统中默认打开了三个标准文件:
stdin(0)---标准输入文件 stdout(1)---标准输出文件 stderr(2)---标准出错文件
它们都是流指针。
若是再打开文件,他的编号最小只能从3开始。不能是0,1,2;
对比两个文件是否相同:
1、 diff xxxx xxxx //不同的地方会表示在终端上
2、 vi xxxx xxxx -d //相同的部分会折叠起来
3、char* fgets(char * s,int size , FILE * stream);
功能:在文件中读一串字符存储到s中,并且处理成字符串 //最多读 size -1 个字符
参数: s 要存放数据的一块空间的地址
size 表示一次读取多少个字符
stream 表示读取的文件
返回值:成功 返回字符串 s 的首地址 //存放数据的字符串的首地址
失败 返回 NULL
特别的:当读到 换行 或者 EOF 的时候会停止读取。
fgets读取数据的结束条件: 1、读满了size-1 2、读到了‘\n’ 3、读到了EOF
原文地址:https://blog.csdn.net/weixin_66436813/article/details/140375035
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!