前へ | 次へ | 目次 | 索引 |
指定されたファイルから 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
ファイル・ポインタ。
バージョン 5.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 を返します。
引数に等しいか,それより小さい最大の整数を返します。
#include <math.h>double floor (double x);
float floorf (float x); (Alpha only)
long double floorl (long double x); (Alpha only)
x
実数値。
n 引数に等しいか,それより小さい最大の整数。
余り (浮動小数点数値) を計算します。
#include <math.h>double fmod (double x, double y);
float fmodf (float x, float y); (Alpha only)
long double fmodl (long double x, long double y); (Alpha only)
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 を返します。
- ファイル保護違反。
- 読み込みアクセスのために存在しないファイルをオープンしようとしました。
- 指定されたファイルをオープンすることができません。
IEEE 浮動小数点数値のクラスを判断します。
#include <math.h>int fp_class (double x);
int fp_classf (float x);
int fp_classl (long double x);
x
IEEE 浮動小数点数値。
fp_class関数は,指定された IEEE 浮動小数点数値のクラスを判断し, <fp_class.h>ヘッダ・ファイルから定数を返します。シグナリング NaN (Not-a-Number) の場合でも,例外は発生しません。これらの関数は,バイナリ浮動小数点演算に関して IEEE 754-1985 標準の付録で勧告されている class(x)関数をインプリメントします。 <fp_class.h>内の定数は次の値クラスを参照します。
FP_SNAN シグナリング NaN (Not-a-Number) FP_QNAN クワイエット NaN FP_POS_INF +無限大 FP_NEG_INF - 無限大 FP_POS_NORM 正の正規化 FP_NEG_NORM 負の正規化 FP_POS_DENORM 正の非正規化 FP_NEG_DENORM 負の非正規化 FP_POS_ZERO +0.0 (正のゼロ) FP_NEG_ZERO - 0.0 (負のゼロ)
x <fp_class.h> ヘッダ・ファイルに定義されている定数。
ファイル・インプリメンテーション属性を取得します。
#include <unistd.h>long int fpathconf (int filedes, int name);
filedes
オープンされているファイル記述子。name
取得する構成属性。この属性を filesdes 引数によって指定されるファイルに適用できない場合は, fpathconfはエラーを返します。
fpathconf関数を使用すると,アプリケーションは filesdes 引数によって指定されるファイルの基礎になるファイル・システムでサポートされる操作の属性を取得することができます。指定されたファイルの読み込みアクセス許可,書き込みアクセス許可,実行アクセス許可は必要ありませんが,ファイルまでのパス内のすべてのディレクトリを検索できなければなりません。name 引数のシンボル値は,次に示すように <unistd.h>ヘッダ・ファイルに定義されています。
_PC_LINK_MAX ファイルへのリンクの最大数。 filedes 引数がディレクトリを参照する場合は,返される値はディレクトリ自体に適用されます。 _PC_MAX_CANON 標準的な入力行の最大バイト数。これは端末デバイスにのみ適用されます。 _PC_MAX_INPUT 入力キューで認められるタイプの数。これは端末デバイスにのみ適用されます。 _PC_NAME_MAX ファイル名の最大バイト数 ( 区切り文字のヌルは含みません )。値の範囲は 13〜255 です。これはディレクトリ・ファイルにのみ適用されます。返される値はディレクトリ内のファイル名に適用されます。 _PC_PATH_MAX パス名の最大バイト数 ( 区切り文字のヌルは含みません )。値は 65,535 以下でなければなりません。これはディレクトリ・ファイルにのみ適用されます。指定したディレクトリがワーキング・ディレクトリの場合は,返される値は相対パス名の最大長です。 _PC_PIPE_BUF 自動的に書き込まれることが保証される最大バイト数。これは FIFO にのみ適用されます。返される値は参照されたオブジェクトに適用されます。 path 引数がディレクトリを参照する場合は,返される値は,既存の FIFO,またはディレクトリ内で作成可能な FIFO に適用されます。 _PC_CHOWN_RESTRICTED 返される値は,既存のファイル ( ディレクトリ以外 ) に適用されるか,またはディレクトリ内で作成可能なファイルに適用されます。これはディレクトリ・ファイルにのみ適用されます。 _PC_NO_TRUNC NAME_MAX で指定される長さより長いコンポーネント名を指定することにより,エラーが発生する場合は,1 を返します。長いコンポーネント名が切り捨てられる場合は,0 (ゼロ) を返します。これはディレクトリ・ファイルにのみ適用されます。 _PC_VDISABLE これは常に 0 (ゼロ) です。無効にする文字は定義されていません。これは端末デバイスにのみ適用されます。
x name 引数に指定された構成属性の値。 - 1 エラーを示します。 errno は次のいずれかの値に設定されます。
- EINVAL--- name 引数が不明の属性または適用できない属性を指定しています。
- EBADF--- filedes 引数が不正なファイル記述子です。
指定したファイルに対して書式設定した出力を実行します。
#include <stdio.h>int fprintf (FILE *file_ptr, const char *format_spec, ...);
file_ptr
出力先のファイルを指すポインタ。format_spec
書式指定を格納した文字列を指すポインタ。書式指定および変換文字の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。...
省略可能な式であり,これらの式の型は,書式指定に指定した変換指定に対応します。変換指定を指定しない場合は,出力ソースを省略できます。変換指定を指定する場合は,関数呼び出しに変換指定と正確に同じ数の出力ソースを指定する必要があります。変換指定は出力ソースの型と一致しなければなりません。
変換指定は左から右への順に出力ソースに対応付けられます。出力ソースの数の方が多い場合は,超過するソースは無視されます。
次の例は変換指定を示しています。
#include <stdio.h> main() { int temp = 4, temp2 = 17; fprintf(stdout, "The answers are %d, and %d.", temp, temp2); }
この例は, stdoutファイルに次の文字列を出力します。
The answers are 4, and 17.
書式指定と出力ソースの詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。
x 区切り文字のヌルを除き,書き込んだバイト数。 負の値 エラーを示します。 errno は次のいずれかに設定されます。
- EILSEQ---不正な文字が検出されました。
- EINVAL---引数の数が不足しています。
- ENOMEM---変換のために使用できるメモリが不足しています。
- ERANGE---浮動小数点演算オーバフローが発生しました。
- EVMSERR---変換不可能な OpenVMS エラー。 vaxc$errno には OpenVMS エラー・コードが格納されます。これは,オーバフローが発生したために,数値への変換が失敗したことを示します。
I/O サブシステムからエラーが返された場合,この関数は errno を次の値に設定します。
- EBADF---ファイル記述子が不正です。
- EIO---I/O エラー。
- ENOSPC---ファイルを格納しているデバイスに空き領域がありません。
- ENXIO---デバイスが存在しません。
- EPIPE---パイプが壊れています。
- ESPIPE---追加のためにオープンされたファイルで不正なシークが行われました。
- EVMSERR---変換不可能な OpenVMS エラー。 vaxc$errno には OpenVMS エラー・コードが格納されます。これは,対応する C エラー・コードが定義されていない I/O エラーが発生したことを示します。
前へ | 次へ | 目次 | 索引 |