概述
标准I/O函数库:
C标准库提供了文件的标准 I/O 函数库,相比前述的系统调用,主要差别是实现了跨平台的用户态缓冲的解决方案。标准I/O库使
用简单,与系统调用I/O相似,也包括打开、读写、关闭这些操作,主要的函数列举如下。
◆ 打开与关闭文件:fopen,fclose。
◆ 读写文件:fread,fwrite。
◆ 读写文本行:fgets,fputs。
◆ 格式化读写:fscanf,fprintf。
◆ 标准输入输出:printf,scanf。
◆ 读写字符:fgetc,getc,getchar,fputc,putc,putchar。
◆ 其他:fflush,fseek。
所谓标准 I/O 函数实际上是对底层系统调用的包装,最终读写设备或文件的操作仍需调用系统I/O函数来完成。
1. 两种I/O操作:
一类是f打头的fopen, fread, fwrite
一类是没有f打头的open, read, fwrite
原来一个是UNIX I/O(在类Unix系统上实现),另一类是标准I/O(在很多系统上都有实现,包括windows)。
2.
使用标准I/O的好处
因为在出UNIX的很多操作系统(包括Windows, linux)上都实现了此库,所有有利于软件的移植。
3. 与UnixI/O的主要区别
UNIX I/O的函数都是针对文件描述符的,而标准I/O的操作都是围绕流进行的。所为的流就是一个FILE *
标准I/O提供了缓存--为了尽量减少write, read的调用。
标准I/O的效率会低一些,因为它是多了一层封装。即,fread通过调用read来实现。
4. 标准I/O的头文件
stdio.h
三个标准I/O流预定义指针:stdin, stdout, stderr
(Unix I/O: STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO)
5. 缓存
有缓存就会有延迟,即输出设备上的内容和缓存中的内容很可能不一样。可以调用fflush刷新缓存。
有多种缓存类型,可以调用下面的API来更改默认缓存类型。
setbuf, setvbuf
setvbuf可以精确的说明缓存的类型。
fclose关闭流时也会刷新流。
当一个进程
正常终止时(直接调用exit,或从main函数返回),则所有带未写缓存数据的标准I/O流都会被刷新,所有打开的标准I/O流都会被关闭。
最后
以上就是能干钥匙为你收集整理的标准I/O函数库的全部内容,希望文章能够帮你解决标准I/O函数库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复