自学内容网 自学内容网

Linux文件编程(标准IO与文件IO)学习日记1

文件类型

         块设备文件          硬盘

          字符设备             鼠标、键盘

d            目录文件             文件夹

          常规文件

l            软连接文件           类似windows的快捷方式

         socket                 套接字文件      用于进程间及网络通信

        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)!