我是靠谱客的博主 能干钥匙,最近开发中收集的这篇文章主要介绍标准I/O函数库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

标准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函数库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部