Unix高级编程之标准IO

Posted 爱新觉罗玄烨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unix高级编程之标准IO相关的知识,希望对你有一定的参考价值。

c标准io---带缓存的io

优势:
带缓存(合并系统调用)
缺点:
实时性低
缓存的类型:
行缓存:stdin stdout(缓存区是有大小)
全缓存:文件
无缓存:stderr

1.流
打开文件的标识

2.FILE类型
结构体类型:
文件描述符
缓存区的地址
缓存的大小


出错标识

3.流的打开
fopen(3);

errno全局变量
定义的宏:
/usr/include/asm-generic/errno-base.h
/usr/include/asm-generic/errno.h
strerror(3);
perror(3);


4.流的操作(读写)
<1>字节
fgetc();/fputc();
getchar();/putchar();
getc();/putc();
<2>按行
fgets();/fputs();
gets();/puts();
<3>二进制
fread();/fwirte();
<4>格式化
fscanf();/fprintf();
scanf();/printf();

5.流的定位
fseek();
ftell();
rewind();

6.流的关闭
fclose(3);

7.流的刷新
fflush(3);

8.临时文件
tmpnam();//了解
tmpfile();//掌握

9.io效率
讨论的不是缓存大小的影响
标准io在调用fopen()时就已经创建缓存区
优先选择:
fgets();/fputs();
fread();/fwrite();
10.
setbuf();
setvbuf();

作业:
将一个文件的第5行的最开始加入一个字符串"uplooking"

 

以上是关于Unix高级编程之标准IO的主要内容,如果未能解决你的问题,请参考以下文章

UNIX环境高级编程 标准IO库

Unix高级编程之文件IO

unix高级编程之线程

《Unix环境高级编程》 阅读笔记之三 - 文件I/O

UNIX环境高级编程

《UNIX环境高级编程》 第三章 文件IO