| 日本−日本語 |
|
|
|
![]() |
HP-UX リファレンス: セクション 3 : ライブラリ (A~M) > ggetc(3S)HP-UX 11i Version 2: September 2004 |
|
名称getc(), getc_unlocked(), getchar(), getchar_unlocked(), fgetc(), getw() ― ストリームファイルからの文字あるいはワードの取得 構文#include <stdio.h> int getc(FILE *stream); int getc_unlocked(FILE *stream); int getchar(void); int getchar_unlocked(void); int fgetc(FILE *stream); int getw(FILE *stream); 説明
getc_unlocked() および getchar_unlocked() は stream の内部ロックをマルチスレッドアプリケーションに対して実行しないこと以外は、それぞれ getc(), および getchar() と同じです。 アプリケーション使用法getc_unlocked() および getchar_unlocked() インタフェースは、 flockfile() を使用して stream に対する相互排他的ロックをすでに取得しているマルチスレッドアプリケーションで使用できます flockfile(3S) 参照)。 getc(), getc_unlocked(), getchar(), getchar_unlocked(), fgetc(), または getw() がストリームに適用された後は、ストリームはバイト指向になります (orientation(5) を参照)。 戻り値正常終了すると、 getc(), getc_unlocked(), getchar(), getchar_unlocked() および fgetc() は、 stream で指定された入力ストリーム getchar() および getchar_unlocked() の場合は ストリームがファイルの終わりにくると、ストリームのエンドオブファイル指標をセットし、 EOF を返します。 読み出しエラーが起きた場合、ストリームのエラー指標を設定し、エラーを示す値を errno に設定し、 EOF を返します。 getw() および getw_unlocked() は正常終了すると stream で指定された入力ストリームから次のワードを返します。ストリームがファイルの終わりにきたら、エンドオブファイル指標を設定し、 getw() および getw_unlocked() は EOF を返します。 読み出しエラーが起きた場合、ストリームのエラー指標を設定し、 getw() および getw_unlocked() はエラーを示す値を errno に設定し、 EOF を返します。 ferror() および feof() を使用して、エラー状態とエンドオブファイル状態を区別できます。 エラーgetc(), getc_unlocked(), getchar(), getchar_unlocked(), getw(), getw_unlocked() および fgetc() は、 stream のバッファーに読み出すべきデータがあるとき、あるいは以下のような場合に失敗します。
中で呼ばれる read() 関数が、これ以外の値を errno に設定することがあります read(2) 参照)。 警告getc() および getchar() は、ライブラリ関数マクロ両方で実現されています。マクロ版はデフォルトで使用され、 <stdio.h> で定義されています。 ライブラリ関数を得るには #undef を使ってマクロ定義を削除するか、 ANSI-C モードでコンパイルするか、関数の名前をカッコで囲むか、関数のアドレスを使用します。 方法は以下のとおりです。 #include <stdio.h> getc(), getc_unlocked(), getchar(), getchar_unlocked() あるいは fgetc() の返す整数値を文字変数に格納して、整数定数 EOF と比較をした場合、文字の整数への符号拡張は機種に依存しているので、この比較は成功しないことがあります。 マクロ版の getc() は、副作用のある stream 引き数は正しく扱うことができません。 とくに getc(*f++) の動作は不安定です。 関数版の getc() あるいは fgetc() を代わりに使う必要があります。 ワード長およびバイト順が異なることがあるので、 putw() を使用して書き出したファイルは機種に依存します。 違ったプロセッサ上では getw() を使用しても読み出せない場合があります。 参照fclose(3S), ferror(3S), flockfile(3S), fopen(3S), fread(3S), gets(3S), putc(3S), read(2), scanf(3S), orientation(5), thread_safety(5) 標準準拠getc(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C getc_unlocked(): POSIX.1C fgetc(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, XPG4.2, FIPS 151-2, POSIX.1, ANSI C getchar(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C getchar_unlocked(): POSIX.1C getw(): AES, SVID2, SVID3, XPG2, XPG3, XPG4 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||