FILE *
読み:ファイル-アスタリスク
外語:FILE *
CやC++おける、ポインター変数の型の一つ。ファイルハンドル。
概要
C/C++の標準関数等で用意されるストリーム関数、例えばfopen()、fdopen()、freopen()などは、FILE *を返す。
以降、ストリームに対するアクセスはFILE *型変数を用い、使い終わった時にはfclose()をFILE *型変数を入れて呼び出す。
特徴
多くの実装では、FILE型はストリームの情報が格納され、内部で使用される構造体であり、FILE *は、その構造体に対するポインターである。但しCの標準仕様上は、必ずしも構造体である必要はない。
つまり、ポインターであること自体に意味があるのであって、そのポインターが指し示す内容については、プログラマーは考慮する必要がない。実装側からも情報を提供しなければ、プログラマーもその先の情報には一切手を触れない。
ではなぜポインターなのかというと、OSや実装が内部で利用する構造体に対するポインターであるからで、これを各オブジェクトの識別に利用するのである。
ポインターが識別に利用できるのは、次のような条件が整っているからである。
- メインメモリー上で、異なる情報が重複することはない。
- 使用中の情報領域が、勝手に別のアドレスに移動されたりしない。
再検索