ログイン
kid's world

画面とキーボードへのファイルポインタ

画面とキーボードへのファイルポインタ

テキストファイルとのやりとりは,まさに画面への出力やキーボードからの入力と同じように処理することができることがわかったと思う。

実際に,画面もキーボードもC言語上ではファイルと同じように扱われており,それぞれstdout,stdinという名前のファイルポインタと関連づけられている(Fig. 4)。これらはそれぞれ標準出力,標準入力と呼ばれている。

Fig.4: 標準入力、標準出力のイメージ

/c/file-fig4.png

試しに,fprintf関数を使って,画面にデータを書き込んでみよう。

fprintf(stdout, "test\n");

画面に「test」と表示されただろうか。場合によっては出力先が画面ではなくて,そのほかの機器になっている場合もある。たとえば,ファイルやプリンタへリダイレクトされているかもしれない。プログラム側で出力先を指定するのではなく,ユーザが指定した「標準の出力先」を用いるという意味で使われている。それが通常は画面に関連づけられているというだけのことなのだ。

しかし,エラーメッセージなどのように,ファイルに書かれて画面に書かれないのでは困る場合もある。その場合はstderrを使う。これは標準エラー出力と呼ばれ,出力先がファイルなどに出力するように指定されていても,通常は画面へ直ちに出力される。このような理由から,前に紹介したperror関数もstderrにエラーを出力している。

なお,これらのポインタを使い終わったからといってfclose関数に渡して閉じてはならない。

おわりに

今回は駆け足でC言語におけるファイルの扱い方について解説してきた。ファイルの扱い方についてはこのスペースで書ききれるものではないが,おおよその使い方はわかったと思う。テキストファイルならば,今まで画面やキーボードに対して行ってきた処理と同じ要領で扱えばよい。バイナリファイルの場合は,fread関数やfwrite関数で直接的に変数のデータ(メモリの内容)を読み書きすればよい。

次回は,関数の作り方について説明する。関数を使えば見やすく効率的なプログラムを作成することができる。


関数を使う」へ進む

広告


©Toshio Koide 1996-2007.

目次

リンクについて

リンクは御自由にどうぞ。

メール

mail.gif

広告