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