您的位置:首页 > 编程语言

Unix环境高级编程笔记 :5、标准IO库

2013-10-30 11:31 302 查看
1、fwide

设置流的定向

#include <stdio.h>

#include <wchar.h>

int fwide(FILE *fp,int mode);

mode参数值为负,fwide试图使指定的流是字节

mode参数值为正,fwide将试图使指定的流是宽定向

mode参数值为0,fwide将不试图设置流的定向,返回标识该流的定向的值

2、标准输入、标准输出、标准出错

对一个进程预定义了三个流,并且这三个流可以自动被进程使用。标准输入、标准输出、标准出错

STDIN_FILENO

STDOUT_FILENO

STDERR_FILENO

这三个标准io流通过预定义文件指针stdin、stdout、stderr加以引用 <stdio.h>

3、标准I/O提供三种类型缓冲

全缓冲

行缓冲

不带缓冲

更改缓冲类型

#include <stdio.h>

void setbuf(FILE *restrict fp,char *restrict buf);

void setvbuf(FILE *restrict fp,char *restrict buf,int mode,size_t size);

任何时间,可以强制冲洗一个流

#include <stdio.h>

int fflush(FILE *fp); 成功0 出错EOF

4、打开流

#include <stdio.h>

FILE *fopen(const char *restrict pathname,const char *restrict type);

FILE *freopen(const char *restrict pathname,const char *restrict type,FILE *restrict fp);

FILE *fdopen(int filedes,const char *type);

type参数指定对该IO流的读、写方式

r或rb 为读而打开

w或wb 把文件截短至0长,或为写而创建

a或ab 添加 为在文件尾写而打开,或为写而创建

r+或r+b或rb+ 为读写而打开

w+或w+b或wb+ 把文件截短至0长,或为读和写而打开

a+或a+b或ab+ 为在文件尾读和写而打开或创建

fclose关闭一个打开的流

5、读和写流

a)一次读一个字符

输入函数

int getc(FILE *fp);

int fgetc(FILE *fp);

int getchar(void);

三个函数的返回值,或成功则返回下一个字符,或已经到达文件结尾或出错则返回EOF

函数getchar等价行getc(stdin),前二个函数的区别是getc可被实现为实现为宏

输出函数

#include <stdio.h>

int putc(int c ,FILE *fp);

int fputc(int c,FILE *fp);

int putchar(int c);

putchar(c)等效于putc(c,stdout)

b)每次一行

每次输入一行

#include <stdio.h

char *fgets(char *restrict buf,int n,FILE *restrict fp);

char *gets(char *buf);

不要使用gets

每次输出一行

int fputs(const char *restrict str,FILE *restrict fp);

int puts(const char *str);

二个函数返回值:或成功则返回非负值,或出错则返回EOF
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: