Manpages

名 前

fgetc, fgets, getc, getchar, ungetc − 文 字 と 文 字 列 の 入 力

書 式

#include <stdio.h>

int fgetc(FILE *stream);

char *fgets(char *s, int size, FILE *stream);

int getc(FILE *stream);

int getchar(void);

int ungetc(int c, FILE *stream);

説 明

fgetc() は 、 stream か ら 次 の 文 字 を unsigned char と し て 読 み 、 int に キ ャ ス ト し て 返 す 。 フ ァ イ ル の 終 わ り や エ ラ ー と な っ た 場 合 は EOF を 返 す 。

getc() は fgetc() と 同 様 だ が 、 stream を 複 数 回 評 価 す る マ ク ロ と し て 実 装 さ れ て い る か も し れ な い 。

getchar() は getc(stdin) と 同 じ で あ る 。

fgets() は stream か ら 最 大 で size − 1 個 の 文 字 を 読 み 込 み 、 s が 指 す バ ッ フ ァ ー に 格 納 す る 。 読 み 込 み は EOF ま た は 改 行 文 字 を 読 み 込 ん だ 後 で 停 止 す る 。 読 み 込 ま れ た 改 行 文 字 は バ ッ フ ァ ー に 格 納 さ れ る 。 終 端 の ヌ ル バ イ ト ('\0') が 一 つ バ ッ フ ァ ー の 中 の 最 後 の 文 字 の 後 に 書 き 込 ま れ る 。

ungetc() は 、 後 の read 操 作 で 読 め る よ う に 、 cunsigned char に キ ャ ス ト し て stream に 書 き 戻 す 。 書 き 戻 さ れ た 文 字 は 逆 順 に 戻 さ れ る ; 書 き 戻 し と し て 保 証 さ れ て い る の は 、 一 文 字 だ け で あ る 。 こ こ で 述 べ た 関 数 や stdio ラ イ ブ ラ リ の 入 力 関 数 を 同 じ 入 力 ス ト リ ー ム に 対 し て 互 い に 混 ぜ て 使 う こ と が で き る 。 こ れ ら の 処 理 を 停 止 せ ず に 行 い た い と き は 、 unlocked_stdio(3) を 参 照 の こ と 。

返 り 値

fgetc(), getc(), getchar() は 、 文 字 を unsigned char と し て 読 ん で int に キ ャ ス ト し て 返 す 。 フ ァ イ ル の 終 わ り や エ ラ ー の 場 合 は EOF を 返 す 。

fgets() は 、 成 功 す る と s を 返 し 、 エ ラ ー や 1 文 字 も 読 み 込 ん で い な い の に フ ァ イ ル の 終 わ り に な っ た 場 合 に NULL を 返 す 。

ungetc() は 成 功 す る と c を 返 し 、 エ ラ ー の 場 合 は EOF を 返 す 。

準 拠

C89, C99, POSIX.1−2001. 入 力 ス ト リ ー ム の フ ァ イ ル デ ィ ス ク リ プ タ ー に 対 し て 、 stdio ラ イ ブ ラ リ の 入 力 関 数 と 、 低 レ ベ ル 呼 び 出 し の read(2) を 混 ぜ て 呼 び 出 す 事 は 勧 め ら れ な い 。 結 果 が ど う な る か は 分 か ら ず 、 お そ ら く あ な た の 望 ん で い る 結 果 に は な ら な い だ ろ う 。

関 連 項 目

read(2), write(2), ferror(3), fgetwc(3), fgetws(3), fopen(3), fread(3), fseek(3), getline(3), gets(3), getwchar(3), puts(3), scanf(3), ungetwc(3), unlocked_stdio(3), feature_test_macros(7)

こ の 文 書 に つ い て

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