Manpages

名 前

stdio − 標 準 入 出 力 ラ イ ブ ラ リ 関 数

書 式

#include <stdio.h>

FILE *stdin;
FILE *
stdout;
FILE *
stderr;

説 明

標 準 入 出 力 ラ イ ブ ラ リ は 、 簡 単 か つ 効 果 の よ い 、 バ ッ フ ァ ー リ ン グ さ れ た ス ト リ ー ム 入 出 力 イ ン タ ー フ ェ ー ス を 提 供 す る 。 入 力 と 出 力 は 論 理 デ ー タ ス ト リ ー ム に 割 り 付 け ら れ 、 入 出 力 の 物 理 的 な 特 徴 は 隠 蔽 さ れ る 。 こ の ラ イ ブ ラ リ に 属 す る 関 数 と マ ク ロ を 以 下 に 挙 げ る 。 よ り 詳 し い 情 報 は 個 々 の man ペ ー ジ か ら 得 る こ と が で き る 。 フ ァ イ ル を オ ー プ ン (open) す る こ と に よ っ て 、 ス ト リ ー ム は 外 部 フ ァ イ ル (通 常 は 物 理 デ バ イ ス ) に 連 結 さ れ る 。 こ の 操 作 に は 新 し く フ ァ イ ル を 作 成 す る こ と も 含 ま れ る 。 既 存 の フ ァ イ ル と 同 じ 名 前 の フ ァ イ ル を 新 た に 作 る と 、 も と の フ ァ イ ル の 中 身 が 捨 て ら れ て し ま う 。 フ ァ イ ル が 位 置 指 定 リ ク エ ス ト を サ ポ ー ト し て い る (デ ィ ス ク フ ァ イ ル な ど が 相 当 す る 。 逆 の 例 と し て は 端 末 が 挙 げ ら れ る ) 場 合 、 そ の ス ト リ ー ム に 連 結 さ れ た フ ァ イ ル 位 置 指 示 子 (file position indicator) は 、 追 加 モ ー ド で 開 か れ な い 限 り フ ァ イ ル の 先 頭 (0 バ イ ト 目 ) に 位 置 す る 。 追 加 モ ー ド を 使 用 し た 場 合 、 位 置 指 示 子 を フ ァ イ ル の 先 頭 に 置 か れ る か 末 尾 に 置 か れ る か は 規 定 さ れ て い な い 。 位 置 指 示 子 は 、 以 降 の 読 み 書 き や 位 置 指 定 リ ク エ ス ト に よ っ て 変 更 さ れ る 。 す べ て の 入 力 は 、 fgetc(3) 関 数 を 次 々 に 呼 び 出 し て 文 字 を 読 み 込 ん だ か の よ う に 行 わ れ る 。 一 方 す べ て の 出 力 は 、 fputc(3) 関 数 を 次 々 に 呼 び 出 し て 文 字 を 書 き 込 ん だ か の よ う に 行 わ れ る 。 フ ァ イ ル を ク ロ ー ズ (close) す る こ と に よ っ て 、 そ の フ ァ イ ル は ス ト リ ー ム か ら 切 り 離 さ れ る 。 出 力 ス ト リ ー ム は 、 そ の ス ト リ ー ム が フ ァ イ ル か ら 切 り 離 さ れ る 前 に フ ラ ッ シ ュ さ れ る (書 き 込 ま れ て い な い す べ て の バ ッ フ ァ ー の 内 容 が ホ ス ト 環 境 に 転 送 さ れ る )。 FILE オ ブ ジ ェ ク ト へ の ポ イ ン タ ー の 値 は 、 フ ァ イ ル を 閉 じ た 後 で は 不 確 定 に な る (ゴ ミ に な っ て し ま う )。 フ ァ イ ル は そ の 後 (同 じ ま た は 別 の プ ロ グ ラ ム に よ っ て ) 再 び オ ー プ ン さ れ る こ と も あ り 、 そ の 内 容 が 修 正 さ れ た り 変 更 さ れ た り す る (そ の フ ァ イ ル で 先 頭 へ の 位 置 移 動 が 可 能 で あ れ ば )。 main 関 数 が も と の 呼 び 出 し 側 に 返 っ た り 、 exit(3) 関 数 が 呼 ば れ た 場 合 、 プ ロ グ ラ ム の 終 了 の 前 に 現 在 開 い て い る す べ て の フ ァ イ ル は 閉 じ ら れ る (そ の 結 果 、 す べ て の 出 力 ス ト リ ー ム は フ ラ ッ シ ュ さ れ る )。 プ ロ グ ラ ム の 停 止 に abort(3) の よ う な 他 の 方 法 を 用 い た 場 合 に は 、 フ ァ イ ル が 正 し く 閉 じ ら れ る 保 証 は な い 。 プ ロ グ ラ ム の 起 動 時 に 3 個 の テ キ ス ト ス ト リ ー ム が 予 め 定 義 さ れ て お り 、 そ れ ら は 明 示 的 に 開 く 必 要 が な い 。 標 準 入 力 (standard input) (通 常 の 入 力 を 読 み 取 る の に 使 う )、 標 準 出 力 (standard output) (通 常 の 出 力 を 書 き 込 む の に 使 う )、 標 準 エ ラ ー 出 力 (standard error) (診 断 出 力 を 書 き 込 む の に 使 う ) で あ る 。 こ れ ら の ス ト リ ー ム は stdin, stdout, stderr と 短 縮 し て 表 現 さ れ る 。 オ ー プ ン さ れ た と き に は 、 標 準 エ ラ ー ス ト リ ー ム は 完 全 に は バ ッ フ ァ ー リ ン グ さ れ て い な い 。 標 準 入 力 ス ト リ ー ム と 標 準 出 力 ス ト リ ー ム は 、 ス ト リ ー ム が イ ン タ ラ ク テ ィ ブ な デ バ イ ス を 参 照 し て い な け れ ば 、 完 全 に バ ッ フ ァ ー リ ン グ さ れ て い る 。 端 末 デ バ イ ス を 参 照 す る 出 力 ス ト リ ー ム は 、 デ フ ォ ル ト で は 常 に 行 単 位 で バ ッ フ ァ ー リ ン グ さ れ て い る 。 た だ し そ の よ う な ス ト リ ー ム に お け る バ ッ フ ァ ー 内 の 出 力 は 、 端 末 デ バ イ ス を 参 照 し て い る 入 力 ス ト リ ー ム か ら の 読 み 込 み が あ る た び に 、 自 動 的 に 書 き 込 ま れ る 。 出 力 端 末 に 行 の 一 部 を 書 き 込 ん だ 後 で 大 量 の 計 算 を 行 う 場 合 、 出 力 が 表 示 さ れ る よ う に 、 計 算 に 取 り か か る 前 に 標 準 出 力 に 対 し て fflush(3) を 実 行 す る 必 要 が あ る 。

stdio ラ イ ブ ラ リ は libc ラ イ ブ ラ リ の 一 部 で あ り 、 ル ー チ ン は コ ン パ イ ラ ー cc(1)pc(1) に よ っ て 必 要 な 時 に 自 動 的 に 読 み 込 ま れ る 。 後 述 す る man ペ ー ジ 中 の 「 書 式 」 の 節 に は 、 ど の イ ン ク ル ー ド フ ァ イ ル を 使 用 し な け れ ば な ら な い か 、 そ の 関 数 の コ ン パ イ ラ ー 宣 言 は ど の よ う な も の か 、 ど の よ う な 外 部 変 数 が 関 係 す る の か が 示 さ れ て い る 。

BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_cuserid, L_ctermid, L_tmpnam, NULL, SEEK_END, SEEK_SET, SEEK_CUR, TMP_MAX, clearerr, feof, ferror, fileno, getc, getchar, putc, putchar, stderr, stdin, stdout は マ ク ロ と し て 定 義 さ れ て い る 。 こ れ ら の 名 前 は 、 現 在 の 定 義 を #undef で 削 除 し な い 限 り 、 再 利 用 す る こ と は で き な い 。 マ ク ロ 関 数 の 関 数 版 と し て 、 feof, ferror, clearerr, fileno, getc, getchar, putc, putchar が あ る 。 マ ク ロ の 定 義 が 明 示 的 に 消 去 さ れ て い る 場 合 に は 、 こ れ ら を 使 用 す る こ と に な る だ ろ う 。 関 数 の リ ス ト

準 拠

stdio ラ イ ブ ラ リ は C89 に 準 拠 し て い る 。

関 連 項 目

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

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。