第九节 linux标准输入输出操作


   标准输入输出的基本操作,包括文件的打开与关闭,缓冲区的操作
   非格式化输入输出,包括单个字节、字符串以及数据块的输入输出
   格式化输入输出
   
   
 1.标准输入输出的基本操作
   标准输入文件(stdin):一般为键盘
   标准输出文件(stout):一般为显示器
   标准错误输出文件(stderr):一般为显示器
   
   1.文件的打开
   操作文件之前要打开文件,打开文件主要是在系统中分配一些资源用于保存该文件的状态信息,并获取文件的指针,
   打开文件的函数为fopen
   
   2.文件的关闭
   fclose函数
   
   3.缓冲区的刷新
   刷新操作是指将缓冲区中的数据清除
   fflush函数将缓冲区中的数据写入到磁盘文件或输出到用户终端,同时清空缓冲区
   fpurge函数将缓冲区的数据直接清除,包括尚未读取或写入的数据
   
   4.缓冲区属性的设置
   缓冲区的大小和类型等都可以通过函数来设置,缓冲区的类型有下面3种。
   全缓冲:缓冲区被填满后才执行输入输出操作,将数据写入到磁盘文件或输出到用户终端。
   
   行缓冲:缓冲区中填入换行符时,执行输入输出操作
   
   无缓冲:不对数据进行缓存,标准错误输出stderr一般就是无缓冲的,这可以使错误信息尽快地显示出来。

   打开文件后,用户可以使用下面的函数来设定自己的文件缓冲区,而不使用fopen函数打开文件设定的默认缓冲区。
   定义:
    int setvbuf(FILE * stream,char * buf,int mode,size_t size);
   说明:
    在打开文件流后, 读取内容之前, 调用setvbuf()可以用来设置文件流的缓冲区。参数stream为指定的文件流,
     参数buf指向自定的缓冲区起始地址, 参数size为缓冲区大小,
     参数mode有下列几种
    _IONBF 无缓冲IO
    _IOLBF 以换行为依据的无缓冲IO
    _IOFBF 完全无缓冲IO。如果参数buf为NULL指针, 则为无缓冲IO。

   除上面函数外,还有如下3个函数:
   setbuf
   setbuffer
   setlinebuf
   
   
 2.非格式化输入输出
   非格式化输入输出包括单个字节输入输出、字符串输入输出以及数据块输入输出
   
   1.单个字节输入输出
     从文件读一个字节
     fgetc
     getchar函数从标准输入读一个字节,等价于fgetc(stdin)
     向指定文件写一个字节
     fputc
     putchar函数可以向标准输出写一个字节,等价于fputc(c, stdout)
   2.字符串输入输出
     fgets函数可以从指定的文件中读一行字符到缓冲区中,
     
     fputs函数可以向指定的文件写入一个字符串
     
     feof函数来测试读写位置是否到达文件末尾
     
   3.数据块输入输出
     对文件进行输入输出操作,也可以以数据块为单位进行,所谓数据块,是指一串固定长度的字节,从文件中
     读取数据块用fread函数
     
     向文件中写入数据块使用fwrite函数
     
     
  3.格式化输入输出
     格式化输出fprintf
     printf等价于fprintf(stdout,...)
     
     格式化输入函数为fscanf
     scanf等价于fscanf(stdin,...)
     
     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值