HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
指定されたファイルの現在のファイルの位置を格納します。
#include <stdio.h>int fgetpos (FILE *stream, fpos_t *pos);
stream
ファイル・ポインタ。pos
実装で定義されている構造体を指すポインタ。 fgetpos関数はこの構造体に,この後の fsetposの呼び出しで使用できる情報を格納します。
fgetpos関数は,stream によって示されるストリームのファイル位置指示子の現在の値を, pos によって示されるオブジェクトに格納します。
0 正常終了を示します。 - 1 エラーが発生したことを示します。
#include <stdio.h> #include <stdlib.h> main() { FILE *fp; int stat, i; int character; char ch, c_ptr[130], d_ptr[130]; fpos_t posit; /* Open a file for writing. */ if ((fp = fopen("file.dat", "w+")) == NULL) { perror("open"); exit(1); } /* Get the beginning position in the file. */ if (fgetpos(fp, &posit) != 0) perror("fgetpos"); /* Write some data to the file. */ if (fprintf(fp, "this is a test\n") == 0) { perror("fprintf"); exit(1); } /* Set the file position back to the beginning. */ if (fsetpos(fp, &posit) != 0) perror("fsetpos"); fgets(c_ptr, 130, fp); puts(c_ptr); /* Should be "this is a test." */ /* Close the file. */ if (fclose(fp) != 0) { perror("close"); exit(1); } }
指定されたファイルから 1 行を読み込みます。指定された最大文字数,または改行文字まで ( どちらか最初に検出された方 ) を読み込みます。文字列は str に格納されます。
#include <stdio.h>関数バリアント fgets関数には, _fgets32および _fgets64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。char *fgets (char *str, int maxchar, FILE *file_ptr);
str
ファイルから読み込まれた情報を格納できるだけの十分な大きさの文字列を指すポインタ。maxchar
読み込む最大文字数。file_ptr
ファイル・ポインタ。
fgets関数は,行をヌル文字 (\0) で区切ります。 gets関数と異なり, fgets関数は,読み込んだ文字数が maxchar に指定された文字数より少ない場合,入力行を区切るために改行文字をユーザ・バッファに追加します。file_ptr によって示されるファイルがレコード・モードでオープンされている場合は, fgetsはレコードの終端を改行文字と同じ方法で取り扱います。したがって,改行文字までを読み込むか,またはレコードの終端までを読み込みます。
x str を指すポインタ。 NULL ファイルの終端 (EOF) またはエラーを示します。読み込みエラーが発生した場合は, str の内容は未定義です。
#include <stdio.h> #include <stdlib.h> #include <unixio.h> main() { FILE *fp; char c_ptr[130]; /* Create a dummy data file */ if ((fp = fopen("file.dat", "w+")) == NULL) { perror("open"); exit(1); } fprintf(fp, "this is a test\n") ; fclose(fp) ; /* Open a file with some data -"this is a test" */ if ((fp = fopen("file.dat", "r+")) == NULL) { perror("open error") ; exit(1); } fgets(c_ptr, 130, fp); puts(c_ptr); /* Display what fgets got. */ fclose(fp); delete("file.dat") ; }
指定されたファイルから次の文字を読み込み,その文字をワイド文字コードに変換します。
#include <wchar.h>wint_t fgetwc (FILE *file_ptr);
file_ptr
アクセスするファイルを指すポインタ。
正常終了すると, fgetwc関数は, file_ptr によって示されるファイルから読み込んだ後, wint_t型に変換したワイド文字コードを返します。ファイルがファイルの終端 (EOF) にある場合は,EOF 指示子が設定され, WEOF が返されます。I/O 読み込みエラーが発生した場合は,エラー指示子が設定され,WEOF が返されます。アプリケーションで ferrorまたは feofを使用すると,エラー条件と EOF 条件を区別できます。
x 読み込んだ文字のワイド文字コード。 WEOF ファイルの終端 (EOF) またはエラーを示します。読み込みエラーが発生した場合は, errno は次のいずれかの値に設定されます。
- EALREADY---同じファイルに対して操作がすでに実行されています。
- EBADF---ファイル記述子が不正です。
- EILSEQ---不正な文字が検出されました。
指定されたファイルから 1 行のワイド文字を読み込みます。
#include <wchar.h>関数バリアント fgetws関数には, _fgetws32および _fgetws64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。wchar_t *fgetws (wchar_t *wstr, int maxchar, FILE *file_ptr);
wstr
ファイルから読み込んだ情報を格納できるたけの十分な大きさのワイド文字の文字列を指すポインタ。maxchar
読み込むワイド文字の最大文字数。file_ptr
ファイル・ポインタ。
fgetws関数は,指定されたファイルからワイド文字を読み込み, wstr によって示される配列に格納します。この関数は,maxchar - 1 文字まで読み込むか,改行文字が読み込まれ,変換され,wstr に転送されるまで読み込むか,またはファイルの終端 (EOF) 条件が検出されるまで読み込みます。行末はヌル・ワイド文字で区切られます。読み込んだ文字数が maxchar 文字より少ない場合, fgetwsは入力行の最後に改行文字を付けてユーザ・バッファに格納します。
x wstr を指すポインタ。 NULL ファイルの終端 (EOF) またはエラーを示します。読み込みエラーが発生した場合, wstr の内容は未定義です。読み込みエラーが発生した場合, errno が設定されます。設定される可能性のある errno の値の一覧については, fgetwc を参照してください。
#include <stdlib.h> #include <stdio.h> #include <locale.h> #include <wchar.h> main() { wchar_t wstr[80], *ret; FILE *fp; /* Create a dummy data file */ if ((fp = fopen("file.dat", "w+")) == NULL) { perror("open"); exit(1); } fprintf(fp, "this is a test\n") ; fclose(fp) ; /* Open a test file containing : "this is a test" */ if ((fp = fopen("file.dat", "r")) == (FILE *) NULL) { perror("File open error"); exit(EXIT_FAILURE); } ret = fgetws(wstr, 80, fp); if (ret == (wchar_t *) NULL) { perror("fgetws failure"); exit(EXIT_FAILURE); } fputws(wstr, stdout); fclose(fp); delete("file.dat"); }
指定されたファイル・ポインタに関連付けられているファイル記述子を返します。
#include <stdio.h>int fileno (FILE *file_ptr);
file_ptr
ファイル・ポインタ。
V5.2 またはそれ以前のバージョンの C コンパイラを使用する場合は, filenoマクロの定義を解除します。
#if defined(fileno) #undef fileno #endif
x 整数のファイル記述子。 - 1 エラーを示します。
引数が有限の数値の場合は整数値 1 (TRUE) を返し,それ以外の場合は 0 (FALSE) を返します。
#include <math.h>int finite (double x);
int finitef (float x);
int double finitel (long double x);
x
実数値。
- 無限大 < x < +無限大の場合は, finite関数は 1 を返します。 |x| = 無限大または x が NaN の場合は,0 を返します。
stdioストリームをロックします。
#include <stdio.h>void flockfile (FILE *file_ptr);
file_ptr
ファイル・ポインタ。
flockfile関数は, stdioストリームをロックし,複数の入出力操作にわたって,スレッドがそのストリームを排他的に使用できるようになります。たとえばあるスレッドの printfの出力と, printfを使おうとしているほかのスレッドの出力が混じらないようにしたい場合は, flockfile関数を使用します。引数のファイル・ポインタは,正しいことが前提です。 flockfileは,ファイル・ポインタが無効でもロックを実行します。また, funlockfile関数は,呼び出し元スレッドが引数のファイル・ポインタのロックを所有していない場合でも,エラーになりません。
対応する flockfileと funlockfileの呼び出しは,ネストさせることができます。ストリームを再帰的にロックすると,対応する最後の funlockfileを呼び出すまでは,ストリームはロックされたままになります。
すべての C RTL ファイル・ポインタ入出力関数は, flockfileおよび funlockfileを呼び出したかのように,ファイル・ポインタをロックします。
ftrylockfileおよび funlockfileも参照してください。
引数に等しいか,それより小さい最大の整数を返します。
#include <math.h>double floor (double x);
float floorf (float x); (Alpha, I64)
long double floorl (long double x); (Alpha, I64)
x
実数値。
n 引数に等しいか,それより小さい最大の整数。
(x * y) + z を 1 つの 3 項演算として計算した後,その結果を丸めます。
#include <math.h>double fma (double x, double y, double z);
float fmaf (float x, float y, float z);
long double fmal (long double x, long double y, long double z);
x
実数値。y
実数値。z
実数値。
fma関数は, (x * y) + z を 1 つの 3 項演算として計算した後,その結果を丸めます。計算は値の精度が無限大であるかのようにして行い,その結果を, FLT_ROUNDS の値で指定されている丸めモードに従って 1 度で丸めます。
n 処理に成功したことを示します。 n は,( x * y) + z の結果を 1 つの 3 項演算として丸めた値です。 NaN x または y が NaN です。 errno には EDOM が設定されます。
引数の中から大きい方を最大値として返します。
#include <math.h>double fmax (double x, double y);
float fmaxf (float x, float y);
long double fmaxl (long double x, long double y);
x
実数値。y
実数値。
fmax関数は,どちらの引数が大きいかを調べます。引数として NaN を指定すると,データがないものとして扱われます。一方の引数が NaN で,もう一方が数値であると,数値側の値が返されます。
n 処理に成功したことを示します。 n は,大きかった方の数値です。一方の引数が NaN であった場合は,もう一方の引数が返されます。 NaN x と y がどちらも NaN であったことを示します。
引数の中から小さい方を最小値として返します。
#include <math.h>double fmin (double x, double y);
float fminf (float x, float y);
long double fminl (long double x, long double y);
x
実数値。y
実数値。
fmin関数は,どちらの引数が小さいかを調べます。引数として NaN を指定すると,データがないものとして扱われます。一方の引数が NaN で,もう一方が数値であると,数値側の値が返されます。
n 処理に成功したことを示します。 n は,小さかった方の数値です。一方の引数が NaN であった場合は,もう一方の引数が返されます。 NaN x と y がどちらも NaN であったことを示します。
余り (浮動小数点数値) を計算します。
#include <math.h>double fmod (double x, double y);
float fmodf (float x, float y); (Alpha, I64)
long double fmodl (long double x, long double y); (Alpha, I64)
x
実数値。y
実数値。
fmod関数は,最初の引数を 2 番目の引数で除算した余りを浮動小数点数値で返します。 2 番目の引数が 0 の場合は,0 が返されます。
x 一部の整数 i に対して, x == i * y + f が成り立つ値 f。符号は x と同じです。ただし, f の大きさは y の大きさより小さい値です。 0 y が 0 であることを示します。
FILE 構造体のアドレスを返すことにより,ファイルをオープンします。
#include <stdio.h>FILE *fopen (const char *file_spec, const char *a_mode); (ANSI C)
FILE *fopen (const char *file_spec, const char *a_mode, ...); (HP C Extension)
file_spec
有効なファイル指定を格納した文字列。a_mode
アクセス・モード指示子。次のいずれかの文字列を使用します。
"r","w", "a","r+", "w+","rb", "r+b","rb+", "wb","w+b",
"wb+","ab", "a+b","ab+", "a+"。これらのアクセス・モードを使用すると,次の結果になります。
- "r" は,読み込みのために既存のファイルをオープンします。
- "w" は,必要に応じて新しいファイルを作成し,書き込みのためにファイルをオープンします。ファイルがすでに存在する場合は,同じ名前でバージョン番号が 1 だけ大きい新しいファイルを作成します。
- "a" は,追加アクセスのためにファイルをオープンします。ファイルの位置は既存のファイルの終端 (EOF) に設定され,そこにデータが書き込まれます。ファイルが存在しない場合は, HP C RTL はファイルを作成します。
更新アクセス・モードでは,読み込みと書き込みの両方のためにファイルをオープンすることができます。既存のファイルに対してこのモードを使用する場合, "r+" と "a+" は,ファイル内での最初の位置設定のみが異なります。各モードは次のとおりです。
- "r+" は読み込み更新アクセスのために既存のファイルをオープンします。ファイルは読み込みのためにオープンされ,最初はファイルの先頭に位置設定されますが,書き込みも許可されます。
- "w+" は書き込み更新アクセスのために新しいファイルをオープンします。
- "a+" は追加更新アクセスのためにファイルをオープンします。ファイルはまず,ファイルの終端 (EOF) に ( 書き込みのために ) 位置設定されます。ファイルが存在しない場合は, HP C RTL はファイルを作成します。
- "b" は,バイナリ・アクセス・モードを示します。この場合,キャリッジ制御情報の変換は行われません。
...
省略可能なファイル属性引数。ファイル属性引数は, creat関数で使用される引数と同じです。詳細については, creat関数を参照してください。
ファイルがすでに存在する場合は, fopenで作成される新しいファイルは,既存のファイルから特定の属性を継承します。ただし, fopenの呼び出しに指定されている属性は継承しません。次の属性が継承されます。レコード・フォーマット
最大レコード・サイズ
キャリッジ制御
ファイル保護ファイル名にディレクトリを指定し,そのディレクトリがエラーを含む検索リストである場合は, HP C for OpenVMS システムはファイル・オープン・エラーとして解釈します。
ファイル制御ブロックは, fclose関数を使用して解放するか,またはプログラムが正常終了するときにデフォルトで解放することができます。
x ファイル・ポインタ。 NULL エラーを示します。定数 NULL は, <stdio.h> ヘッダ・ファイルに NULL ポインタの値として定義されています。この関数は,次のエラーを示すために NULL を返します。
- ファイル保護違反。
- 読み込みアクセスのために存在しないファイルをオープンしようとしました。
- 指定されたファイルをオープンすることができません。
| 前へ | 次へ | 目次 | 索引 |