Manpages

NAME

stdio - 标 准 输 入 输 出 库 函 数

SYNOPSIS 总 览

#include <stdio.h>

FILE *stdin;
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, stdoutstderr 。 在 打 开 时 , 标 准 错 误 流 不 会 完 全 缓 冲 ; 当 且 仅 当 流 不 是 一 个 交 互 的 设 备 时 , 标 准 输 入 和 标 准 输 出 流 才 被 完 全 缓 冲 。 指 向 终 端 设 备 的 输 出 流 总 是 默 认 使 用 行 缓 冲 ; 未 定 的 输 出 总 是 在 指 向 一 个 终 端 设 备 的 输 入 流 被 读 取 时 自 动 被 写 入 。 如 果 在 一 个 输 出 终 端 上 打 印 了 一 行 的 一 部 分 , 然 后 运 行 了 大 量 的 计 算 后 , 应 当 在 退 出 和 计 算 前 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’’) 标 准 。

SEE ALSO 参 见

open(2), close(2), read(2), write(2), stdout(3)

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh