文章目录
标准I/O库是在系统调用函数基础上构造的。
1.三种缓存
ANSI C要求下列缓存特征:
(1) 当且仅当标准输入和标准输出并不涉及交互作用设备时,它们才是全缓存的。
(2) 标准出错决不会是全缓存的。
1.1全缓存
在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。对于驻在磁盘上的文件通常是由标准I/O库实施全缓存的。在一个流上执行第一次I/O操作时,相关标准I/O函数通常调用malloc获得需使用的缓存。
1.2行缓存
在这种情况下,当在输入和输出中遇到新行符时,标准I/O库执行I/O操作。
1.3不带缓存
2.流和相关函数
2.1打开流
fopen()
freopen()
fdopen()
2.2读和写流
getc()
fgetc()
getchar()
ferror()
feof()
clearerr()
ungetc()
putc()
fputc()
putchar()
gets() //每次一行
fgets() //每次一行
puts() //每次一行
fputs() //每次一行
2.3定位流
ftell()
fseek()
rewind()
fgetpos()
fsetpos()
3.格式化I/O
3.1格式化输出
printf()
fprintf()
sprintf()
vprintf()
vfprintf()
vsprintf()
3.2格式化输入
scanf()
fscanf()
sscanf()
4.fileno()函数
每个I/O流都有一个与其相关联的文件描述符,可以对一个流调用fileno以获得其描述符。
5.tmpnam()和tmpfile()函数
功能:创建临时文件。