Linux講座にようこそ。このページは「C言語プログラミング入門 - 第14章.ライブラリ関数 - 入出力ライブラリ」です。

C言語プログラミング入門

14. ライブラリ関数(2/36) - 入出力ライブラリ(1/10)

C言語ではファイルの入出力のための文はありませんので、入出力はライブラリ関数を使用します。通常、ファイルを取り扱う場合は、次の手順で操作します。

ファイルのオープン ← ファイルポインタと呼ぶファイル操作のためのデータを取得します
      ↓
入力または出力 ← ファイルポインタを使って、入出力を行います
      ↓
ファイルのクローズ ← ファイルポインタを開放します

ファイルポインタはファイルを操作するのに必要なデータを、一括して管理する構造体変数のポインタです。この構造体はtypedefにより、ヘッダーファイルのstdio.h中でFILEという型名で宣言されています。(stdio.h中で取り込んでいるヘッダファイルで宣言している場合もあります)従って、ファイルポインタの宣言は次のように行ないます。

FILE    *fp; ← fpという名前のファイルポインタを宣言します

なお、標準入出力の場合は、予め次の名前のファイルポインタが用意されており、これらを使って入出力が可能です。なお、これらを使う場合は、オープンとクローズは不要です。

stdin
標準入力用のファイルポインタです。
stdout
標準出力用のファイルポインタです。
stderr
標準エラー出力用のファイルポインタです。

ここで説明する関数は次の通りです。なお、ヘッダファイルとしてはstdio.hが必要です。

【表14-1-1】 入出力ライブラリ関数一覧
区分関数名機能概要
ファイル操作fopen()ファイルをオープンします。返り値としてファイルポインタが返ります。
fclose()ファイルをクローズします。
fflush()バッファの内容をファイルに出力します。
freopen()ファイルのクローズとオープンを行います。
文字の入力fgetc()ファイルから1文字入力します。
getc()ファイルから1文字入力します。
getchar()標準入力から1文字入力します。
ungetc()入力ストリームに1文字戻します。
文字の出力fputc()ファイルに1文字出力します。
putc()ファイルに1文字出力します。
putchar()標準出力に1文字出力します。
行の入力fgets()ファイルから行単位に入力します。
gets()標準入力から行単位に入力します。
行の出力fputs()ファイルに行単位に出力します。
puts()標準出力に行単位に出力します。
書式入力fscanf()ファイルから書式制御文字列に従い型変換して入力します。
scanf()標準入力から書式制御文字列に従い型変換して入力します。
sscanf()文字列を書式制御文字列に従い型変換して、引数に指定した変数に設定します。
書式出力fprintf()ファイルに書式制御文字列に従い編集した文字列を出力します。
printf()標準出力に書式制御文字列に従い編集した文字列を出力します。
sprintf()書式制御文字列に従い編集した文字列を、引数に指定したchar型の配列(文字列)に設定します。
ファイルの終端
および、エラーの検出
feof()ファイルのEOF(end of file)の状態を調べます。
ferror()ファイルのエラー状態を調べます。
clearerr()ファイルのEOFとエラー状態をクリアします。
バイナリファイルの入出力fread()ファイルからレコード単位に入力します。
fwrite()ファイルにレコード単位に出力します。
ファイル内の位置操作fseek()ファイルの入出力位置を設定します。
ftell()現在の入出力位置を取得します。
rewind()入出力位置をファイルの先頭に設定します。
fgetpos()現在の入出力位置を取得します。
fsetpos()入出力位置を設定します。
バッファ操作setvbuf()バッファリング・モードとバッファ領域を設定します。
setbuf()バッファ領域を設定します。
書式出力
(可変個引数)
vfprintf()ファイルに書式制御文字列に従い編集した文字列を出力します。
vprintf()標準出力に書式制御文字列に従い編集した文字列を出力します。
vsprintf()書式制御文字列に従い編集した文字列を、引数に指定したchar型の配列(文字列)に設定します。
ファイル削除
および、名称変更
remove()ファイルやフォルダを削除します。
rename()ファイルやフォルダの名称(パス名)を変更します。
一時ファイルの操作tmpfile()ユニークな名称(パス名)の一時ファイルを作成します。
tmpnam()一時ファイルの名前(パス名)を生成します。