您的位置:首页 > 运维架构 > Linux

Linux 标准输入输出_11

2013-03-21 11:51 176 查看
标准输入输出是基于标准输入输出库实现的。

知识点大纲 『

*1 标准输入输出的基本操作,包括文件的打开与关闭,缓冲区的操作等。

*2 非格式化输入输出, 包括单个字节,字符串(行)以及数据块的输入输出。

*3 格式化输入输出。



-11.1 标准输入输出的基本操作

标准输入输出操作是通过控制结构 FILE 进行。

文件控制结构中包含处理文件所需的全部信息,例如文件名,文件当前的读写位置,用于该文件读写的内存缓冲区位置等。打开文件时,系统会在内存中自动建立该文件的控制结构。关闭文件时,文件控制结构被释放。在对文件进行操作之前,要首先获取文件的指针,即指向文件控制结构的指针,后续操作都通过该指针进行。

标准输入输出时,有 3 个比较特殊的文件,如下 :

*1 标准输入文件(stdin) : 一般为键盘

*2 标准输出文件(stdout): 一般为显示器

*3 标准错误输出文件(stderr) : 一般为显示器

-11.1.1 文件的打开

#include <stdio.h>

FILE *fopen(const char *filename, const char *modes);

例如 : FILE *fp; fp = fopen("./hello.c", "r");

-11.1.2 文件的关闭

对文件操作完成后,应该关闭文件,进而释放文件所占用的系统资源。关闭后,文件指针将不再有效。

#include <stdio.h>

int fclose(FILE *fp);

-11.1.3 缓冲区的刷新

#include <stdio.h>

int fflush(FILE *fp); 写入到磁盘文件或者输出到用户终端。

int fpurge(FILE *fp); 清空缓冲区。

-11.1.4 缓冲区属性的设置 (缓冲区的大小和类型都可以通过函数来设置)

*1 全缓冲 *2 行缓冲 *3 无缓冲

#include <stdio.h>

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

-11.2 非格式化输入输出

-11.2.1 单个字节输入输出

int fgetc(FILE *fp);

-11.2.2 字符串输入输出

char *fgets(char *s, int n, FILE *fp);

-11.2.3 数据块的输入输出

size_t fread (void *ptr, size_t size, size_t n, FILE *fp);

size_t fwrite(void *ptr, size_t size, size_t n, FILE *fp);

-11.3 格式化的输入输出

int fprintf(FILE *fp, const char *format, ...);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: