- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章-标准输入输出库
第十章 标准输入输出库 关于标准I/O库 主要内容 标准I/O的基本概念 流 缓存 标准输入、标准输出及标准错误输出 使用标准I/O进行文件操作 流文件的开关方式 单字符方式读写 行方式读写 二进制方式读写 格式化输入/输出 引入 Linux系统下的文件操作有两种方式: 直接调用文件操作的系统调用(API方式) 标准输入输出方式(标准I/O) 流 使用标准I/O库访问文件时,需要首先打开文件。 打开文件成功后,系统内核将返回流(stream)数据结构。 所有对该文件的后续操作都将针对这个数据结构进行。 实际上流结构是一个指向FILE结构的指针。 缓存 标准输入输出方式(标准I/O)与直接调用文件操作的系统调用(API方式)的区别: 标准I/O带缓存 文件操作无缓存 缓存的含义:在对文件进行I/O操作时,对数据的读写并不直接对文件系统,而是对缓存进行。当缓存空间满时,由系统根据缓存内容刷新到文件系统。 优点:降低调用文件操作的频率。 缓存 标准I/O库提供的缓存方式有3种: 全缓存(缓存填满,则向文件系统刷新) 行缓存(遇换行符,则向文件系统刷新) 不缓存 缓存在第一次调用I/O库时,由系统自动调用malloc分配。 缓存举例 例:分别向标准输出(stdout)和标准错误(stderr)输出信息,比较行缓存和不缓存的区别。 缓存举例 分析:标准输出采用行缓存,由于未输出换行符,所以本条消息不会立即显示;标准错误输出是不缓存的,所以立刻输出。 标准I/O库提供改变缓存方式的函数: Setbuf() Setbuffer() Setlinebuf() 以上函数的声明位于头文件stdio.h中 改变流的缓存方式 #include stdio.h void setbuf(FILE *stream,char *buf) void setbuffer(FILE *stream,char *buf,size _t size) void setlinebuf(FILE *stream) setbuf函数:设置某个流对象的缓存区为BUFSIZ。buf若为NULL,则表示设置流为无缓冲模式。 setlinebuf函数:设置某个流对象为行缓存模式。 setbuffer函数:设置某个流对象的缓存区为指定值。 参数说明: stream:流对象 buf:自定义缓存区指针 size:缓存区大小 缓存举例 例:分别向标准输出(stdout)和标准错误(stderr)输出信息,比较行缓存和不缓存的区别。 缓存举例 结果分析:调用setbuf关闭缓存,使标准输出成为无缓存模式。 标准输入、标准输出和标准错误输出 对每一个进程来说,系统默认为其打开3个流: 标准输入 标准输出 标准错误输出 分别用宏定义表示(stdin,stdout,stderr) 输入输出重定向举例 例:编程实现标准输出的重定向。 上例说明: void perror(const char *s); 函数说明:perror( ) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno 的值来决定要输出的字符串。 函数名: dup2 功能: 复制文件句柄 用法: int dup2(int oldhandle,int newhandle); 主要内容 标准I/O的基本概念 流 缓存 标准输入、标准输出及标准错误输出 使用标准I/O进行文件操作 流文件的开关方式 单字符方式读写 行方式读写 二进制方式读写 格式化输入/输出 使用标准I/O进行文件操作 要对一个流进行操作,必先打开该流,然后调用标准I/O函数进行读写。 打开关闭流文件 fopen函数(用前需打开) 类似与底层的open系统调用。主要用于文件的输入输出 打开关闭流文件 mode参数: “r” : 以只读方式打开,该文件必须存在。 “r+”:以可读写方式打开,该文件必须存在。 “rb+”:读写打开一个二进制文件。 “w” :以只写方式打开,文件长度截短为零,不存在可建立。 “w+”:以读写方式打开,文件清零,不存在可建立。 “wb”:只写打开或建立一个二进制文件。 “wb+”:读写打开或建立一个二进制文件。 “a”:以追加只写方式打开文件,不存在可建立。 “a+”:以追加可读写方式打开文件,不存在可建立。 打开关闭流文件 fclose函数(用后需关闭) 关闭指定的文件流stream,使所有尚未写出的数据都写出。 打开关闭流文件 fopen与fclose例程 单字符方式读写 标准I/O库提供多种读写方式: 单字符方式读写 行方式读写 二进制方式读写 单字符读写函数有以下6种:
您可能关注的文档
- 突聋药物治疗.ppt
- 立井井筒降温管道安装施工方案、措施.doc
- 立井混合箕斗罐笼改绞施工设计.doc
- 窑湾-文化产业融合案例分析.ppt
- 立柱(桥台)实施细则-石桥立交桥3.doc
- 立_体_构_成.ppt
- 立磨机市场的回暖带动了粉磨行业的发展.pptx
- 立柱专项施工方案3.20.docx
- 竖井内电缆保护方案.docx
- 竖曲线计算原理.ppt
- 书香伴我成长演讲稿(优秀10篇).pdf
- 2023年育婴员(五级)参考题库含答案1.pdf
- 2024年六盘水职业技术学院高职单招语文2016-2023年典型考题含答案解析.docx
- 2024年天津体育职业学院高职单招语文2016-2023年典型考题含答案解析.docx
- 2024年内江卫生与健康职业学院高职单招职业适应性测试历年【2016-2023】典型考题含答案解析.docx
- 2024年四川西南航空职业学院高职单招职业技能测验2018-2023年典型考题含答案解析.docx
- 2024年兰州石化职业技术学院高职单招语文2016-2023年典型考题含答案解析.docx
- VDA 6.3 2023审核表_原创精品文档.pdf
- 2024年大一第二学期的新学期的计划(3篇).pdf
- 地质学专业职业生涯规划书发展报告应届本科毕业生全国大学生职业规划大赛模板范文1500字.pdf
最近下载
- 河南12系列建筑设计图集一(12YJ1).pdf
- 2024年货币鉴定师(初级)技能鉴定考试题库资料-上(单选题汇总).pdf
- 《现代汉语》课程思政教学案例(一等奖).docx
- 抖音学习测试题及答案(必刷).docx
- 2023年兽医防治员考试:动物疫病防治员兽医防治员真题模拟汇编(共354题).docx VIP
- 2024年家政服务业行业分析报告及未来五至十年行业发展报告.docx
- 传统乡村文化田园风光美丽乡村城市景观规划设计文本.ppt
- XX营业网点矛盾纠纷引发安全类突发事件应急处置场景预案范例.doc
- 部编版小学五年级下册道德与法治单元检测试卷含答案(全册).docx
- 市政道路工程监理实施细则.doc VIP
文档评论(0)