Advanced Programming in UNIX Environment Episode 20
来源:互联网 发布:俄罗斯作家知乎 编辑:程序博客网 时间:2024/06/08 00:44
这一章讲述了I/O库。很多其他操作系统都实现了标准I/O库,这个库由ISO C标准说明。Single UNIX specification对ISO C标准进行了扩充,定义另外一些接口。
35年来,几乎没有对标准I/O库进行修改
freopen函数清除一个流的定向;fwide函数可用于设置流的定向。
#include <stdio.h>#include <wchar.h>int fwide(FILE *fp, int mode);
- mode参数值为负,fwide将试图使指定的流是字节定向的。
- mode参数值为正,fwide将试图使指定的流是宽定向的。
- mode参数为0,fwide将不试图设置流的定向,但返回标识该流定向的值。
3个流可以自动地被进程使用,分别是:标准输入、标准输出和标准错误。
3个标准I/O流通过预定文件指针stdin、stdout和stderr加以引用。这3个文件定义在头文件<stdio.h>中。
标准I/O提供了以下3种类型的操作。
(1)全缓冲
术语冲洗(flush)说明标准I/O缓冲区的写操作。
(2)行缓冲
(3)不带缓冲。
ISO C要求下列缓冲特征。
- 当且仅当标准输入和标准输出并不指向交互式设备时,他们才是全缓冲的。
- 标准错误绝不会是全缓冲的。
很多系统默认使用下列类型的缓冲:
- 标准错误是不带缓冲的。
- 若是指向终端设备的流,则是行缓冲的;否则就是全缓冲的。
对任何一个给定的流,如果我们不喜欢这些系统默认,可以调用下列两个函数中的一个更改缓冲类型。
#include <stdio.h>void setbuf(FILE *restrict fp, char *restrict buf);int setvbuf(FILE *restrict fp, char *restrict buf, int mode, size_t size);
这是用mode参数实现的:
_IOFBF 全缓冲
_IOLBF 行缓冲
_IONBF 不带缓冲
阅读全文
0 0
- Advanced Programming in UNIX Environment Episode 20
- Advanced Programming in Unix Environment Episode 1
- Advanced Programming in Unix Environment Episode 2
- Advanced Programming in UNIX Environment Episode 3
- Advanced Programming in UNIX Environment Episode 4
- Advanced Programming in UNIX Environment Episode 5
- Advanced Programming in UNIX Environment Episode 6
- Advanced Programming in UNIX Environment Episode 7
- Advanced Programming in UNIX Environment Episode 8
- Advanced Programming in UNIX Environment Episode 9
- Advanced Programming in UNIX Environment Episode 10
- Advanced Programming in UNIX Environment Episode 11
- Advanced Programming in UNIX Environment Episode 12
- Advanced Programming in UNIX Environment Episode 13
- Advanced Programming in UNIX Environment Episode 14
- Advanced Programming in UNIX Environment Episode 15
- Advanced Programming in UNIX Environment Episode 16
- Advanced Programming in UNIX Environment Episode 17
- 002 java开发常用集合总结
- dubbo-remoting分析~没完待续
- 实习生面试经验(一)-图像算法岗
- anime.js 实战:实现一个带有描边动画效果的复选框
- 3年程序员应具备的技能(转)
- Advanced Programming in UNIX Environment Episode 20
- bzoj2424 [HAOI2010]订货 费用流
- Hive 简介
- 定时任务Quartz_spring的配置文件
- net获取两个日期之间的天数和工作日数总结
- [Linux] Windows 和 Linux 远程桌面连接
- 单片机有很多种
- Two Semiknights Meet CodeForces
- 什么是php单例模式?