《unix高级环境编程》标准I/O——FILE对象
来源:互联网 发布:java final关键字用法 编辑:程序博客网 时间:2024/06/03 16:37
前面介绍的《文件I/O》都是针对文件描述符进行操作的,并且是非缓冲区方式的。本节记录的标准I/O的操作是在流进行的,当用标准I/O打开或创建一个文件时,已使一个流与一个文件相关联。
标准I/O文件的流可用与单字节或多字节(宽)字符集。流的定向决定所读、写的字符是单字节还是多字节。流最初被创建时,并没有定向,若在未定向的流上使用一个多字节I/O函数,则将该流的定向设置为宽定向,若是使用一个单字节I/O函数,则将该流的定向设置为字节定向。只有两个函数可以改变流的定向:freopen函数清除一个流的定向;fwide函数设置流的定向。
- /***********
- * 设置流的定向
- * 返回值:
- * 1、若流是宽定向则返回正值;
- * 2、若流是字节定向则返回负值;
- * 3、若流是未定向则返回0;
- * 函数原型:
- * #include <stdio.h>
- * #include <wchar.h>
- * int fwide(FILE *fp, int mode);
- * 说明:根据mode的不同值,fwide操作不同:
- * 1、mode为负值,fwide试图使指定的流是字节定向;
- * 2、mode为正值,fwide试图使指定的流是宽定向;
- * 3、mode值为0,fwide不设置流的定向,返回标识该流定向的值;
- * 注意:fwide并不改变已定向流的定向
- * *************/
标准输入、输出和出错
- /************
- * 标准输入 stdin
- * 标准输出 stdout
- * 标准出错 stderr
- * ***********/
缓冲区
- /**************
- * 缓冲:目的是减少数据的读写次数;
- * 标准I/O的缓冲类型:
- * 1、全缓冲:填满标准I/O缓冲区之后才进行实际I/O操作;
- * 2、行缓冲:挡在输入和输出中遇到换行符,则执行I/O操作;
- * 3、不带缓冲:标准I/O库不对字符进行缓冲存储;
- *
- * 函数功能:更改缓冲区类型
- * 返回值:若成功则返回0,若出错则返回非0;
- * 函数原型:
- * #include <stdio.h>
- * void setbuf(FILE *fp, char *buf);
- * int setvbuf(FILE *fp,char *buf, int mode, ssize_t size);
- * 注意:使用这两个函数必须确定fp流已经打开。
- *
- * setbuf函数打开或关闭缓冲机制,参数buf指定一个长度为BUFSIZE的缓冲区。
- * sevbuf函数根据参数mode指定缓冲类型:
- * mode参数:
- * _IOFBF 全缓冲
- * _IOLBF 行缓冲
- * _IONBF 不带缓冲
- *____________________________________________________________
- |函数 | mode | buf | 缓冲区及长度 | 缓冲类型 |
- |_______|________|________|____________________|_____________|
- |setbuf | | 非空 | 长度BUFSIZE的buf | 全或行缓冲 |
- | | | NULL | 无缓冲区 | 不带缓冲区 |
- |_______|________|________|____________________|_____________|
- |setvbuf| _IOFBF | 非空 | 长度size的buf | 全缓冲 |
- | | | NULL | 合适长度缓冲区 | |
- | | _IOLBF | 非空 | 长度size的buf | 行缓冲 |
- | | | NULL | 合适长度的缓冲区 | |
- | | _IONBF | 忽略 | 无缓冲区 | 不带缓冲区 |
- |_______|________|________|____________________|_____________|
- ********/
0 0
- 《unix高级环境编程》标准I/O——FILE对象
- 《unix高级环境编程》标准I/O——FILE对象
- UNIX环境高级编程——标准I/O库
- UNIX环境高级编程——标准I/O库
- UNIX环境高级编程----标准I/O
- UNIX环境高级编程--标准I/O
- UNIX环境高级编程——标准I/O库函数和Unbuffered I/O函数
- UNIX环境高级编程——标准I/O库缓冲区和内核缓冲区的区别
- UNIX环境高级编程——标准I/O库缓冲区和内核缓冲区的区别
- unix环境高级编程复习)——标准I/O库(1)
- 《unix高级环境编程》标准I/O——流操作
- 《unix高级环境编程》标准I/O——流操作
- UNIX环境高级编程——第五章-标准I/O库
- UNIX环境高级编程---标准I/O库
- unix环境高级编程-5.2~3标准I/O库。
- unix环境高级编程-5.8-标准I/O的效率。
- UNIX环境高级编程---标准I/O库
- unix环境高级编程----标准I/O库
- 初来乍到,分享一些自己写的源码!
- Web端云音乐widget测试
- Flume-ng生产环境实践(四)实现log格式化interceptor
- Spring的JavaMailSenderImpl发送邮件
- 第十三周oj平台项目三:统计元音字母
- 《unix高级环境编程》标准I/O——FILE对象
- 第13周 项目1-3 输出指定的元素
- Dialog的使用方法:常规和自定义
- UVA 11258 String Partition
- 《unix高级环境编程》标准I/O——流操作
- VS2012在添加域服务时找不到EF的问题
- 安全的应用内广播
- 自己实现一个string类
- android apk嵌套 从一个apk启动另外一个apk