2001-12-26
manpages-zh
Chinese manual pages
man-pages-zh-CN
Chinese Man Pages from Chinese Man Pages Project
man-pages-zh_cn
Simplified Chinese Linux man pages
manpages-dev
Manual pages about using GNU/Linux for development
man-pages
Linux kernel and C library user-space interface documentation
NAME
stdio - 标准输入输出库函数
SYNOPSIS 总览
#include <stdio.h>
FILE *stdin;
FILE *stdout;
FILE *stderr;
FILE *stdout;
FILE *stderr;
DESCRIPTION 描述
标注 I/O 库函数提供了一个简单而有效的,带缓冲的流输出输出接口。输入和输出被映射为逻辑的数据流,物理的 I/O 特性则被隐藏起来。库中包含的函数与宏列在下面;更多信息可以从独立的 man 手册页中得到。
将一个流关联到一个外部文件 (可能是一个物理设备) 的方法是打开 ( opening ) 这个文件,其中可能牵涉到创建一个新文件。创建已有的文件使得文件中已有的内容被丢弃。如果文件支持定位请求 (例如磁盘文件;但终端不是这样),那么一个与文件关联的定位标记 ( file position indicator ) 被定位到文件的起始 (0 字节),除非以追加模式打开文件。使用追加模式时,究竟定位标记位于文件的开始还是结束是没有指定的。定位标记由后续的读、写和定位请求来维护。从流中输入时,就如同字符是连续地成功调用了函数 fgetc(3) 而读入的;产生输出时,就如同所有字符是连续地成功调用了函数 fputc(3) 而输出的。
将一个流与一个与之关联的文件断开的办法是关闭 ( closing ) 这个文件。在流与文件断开之前,输出流被刷新 (任何未写入的缓冲的内容都被传输给主机环境)。在文件被关闭之后,指向 FILE 对象的指针的值是不确定的 (无用数据)。
一个文件可以继续被相同的或是不同的程序实体再次打开,它的内容可以被恢复或者修改 (如果它可以被重定位到文件开始的话)。如果 main 函数返回到它最初的调用者,或者调用了函数 exit(3) ,在程序终止前,所有打开的文件都将被关闭 (因此所有的输出流都被刷新)。其他终止程序的方法,例如 abort(3) 不会进行正常的关闭文件操作。
在程序启动时,会预先定义三个文本流,它们不需要显式地打开 — 标准输入 (用于读入常规内容),— 标准输出 (用于输出常规内容),以及 标准错误 (用于输出诊断信息)。这些流的缩写是 stdin,stdout 和 stderr 。在打开时,标准错误流不会完全缓冲;当且仅当流不是一个交互的设备时,标准输入和标准输出流才被完全缓冲。
指向终端设备的输出流总是默认使用行缓冲;未定的输出总是在指向一个终端设备的输入流被读取时自动被写入。如果在一个输出终端上打印了一行的一部分,然后运行了大量的计算后,应当在退出和计算前 fflush(3) 标准输出,使得输出可以显示出来。(?)
标准输入输出库 stdio 是函数库 libc 的一部分,需要时可以被编译器 cc(1) 和 pc(1) 自动加载。下列手册页的 SYNOPSIS 总览 段落会指出要包含哪些文件,函数定义的格式,以及它们受到哪些外部变量的影响。
下列为已定义的宏;如果不用 #undef 取消这些名称的当前定义的话,是不能重新使用它们的: BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_cuserid, L_ctermid, L_tmpnam, NULL, SEEK_END, SEEK_SET, SEE_CUR, TMP_MAX, clearerr, feof, ferror, fileno, fropen, fwopen, getc, getchar, putc, putchar, stderr, stdin, stdout. 另外,还有与这些宏的功能对应的,函数形式的版本 feof, ferror, clearerr, fileno, getc, getchar, putc, 和 putchar ,在显式地取消宏的定义时,可以使用它们。
LIST OF FUNCTIONS 函数列表
Function 函数 | |
Description 描述 | |
clearerr | 检测并重置流状态 |
fclose | 关闭流 |
fdopen | 打开流 |
feof | 检测并重置流状态 |
ferror | 检测并重置流状态 |
fflush | 刷新流 |
fgetc | 从输入流中获取下一个字符或词 |
fgetpos | 重定位流 |
fgets | 从流中获取一行 |
fileno | 返回流参数的整数形式的描述符 |
fopen | 打开流 |
fprintf | 按照格式输出常规内容 |
fpurge | 刷新流 |
fputc | 向流输出一个字符或词 |
fputs | 向流输出一行 |
fread | 二进制输入/输出 |
freopen | 打开流 |
fropen | 打开流 |
fscanf | 按照格式输入常规内容 |
fseek | 重定位流 |
fsetpos | 重定位流 |
ftell | 重定位流 |
fwrite | 二进制输入/输出 |
getc | 从输入流中获取下一个字符或词 |
getchar | 从输入流中获取下一个字符或词 |
gets | 从流中获取一行 |
getw | 从输入流中获取下一个字符或词 |
mktemp | 创建 (唯一的) 临时文件名 |
perror | 系统错误消息 |
printf | 按照格式输出常规内容 |
putc | 向流输出一个字符或词 |
putchar | 向流输出一个字符或词 |
puts | 向流输出一行 |
putw | 向流输出一个字符或词 |
remove | 删除目录项 |
rewind | 重定位流 |
scanf | 按照格式输入常规内容 |
setbuf | 流缓冲操作 |
setbuffer | 流缓冲操作 |
setlinebuf | 流缓冲操作 |
setvbuf | 流缓冲操作 |
sprintf | 按照格式输出常规内容 |
sscanf | 按照格式输入常规内容 |
strerror | 系统错误消息 |
sys_errlist | |
系统错误消息 | |
sys_nerr | 系统错误消息 |
tempnam | 临时文件控制 |
tmpfile | 临时文件控制 |
tmpnam | 临时文件控制 |
ungetc | 向输入流中退回字符 |
vfprintf | 按照格式输出常规内容 |
vfscanf | 按照格式输入常规内容 |
vprintf | 按照格式输出常规内容 |
vscanf | 按照格式输入常规内容 |
vsprintf | 按照格式输出常规内容 |
vsscanf | 按照格式输入常规内容 |
CONFORMING TO 标准参考
函数库 stdio 遵循 ANSI X3.159-1989 (‘‘ANSI C’’) 标准。
跋
本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
REFERENCED BY
_exit(2), fcntl(2), vfork(2), exit(3), ferror(3), popen(3), stdin(3), unlocked_stdio(3), VistaIOReadEdges(3), VistaIOReadFile(3), VistaIOReadImages(3), VistaIOReadObjects(3), VistaIOWriteEdges(3), VistaIOWriteFile(3), VistaIOWriteImages(3), VistaIOWriteObjects(3), intro(3), prompter(1mh), prompter(1), pmsnap(1)