前へ | 次へ | 目次 | 索引 |
1 文字を指定のファイルに書き込みます。
#include <stdio.h>int fputc (int character, FILE *file_ptr);
character
int型のオブジェクト。file_ptr
ファイル・ポインタ。
fputc関数は 1 文字をファイルに書き込み,その文字を返します。putcも参照してください。
x ファイルに書き込んだ文字。正常終了を示します。 EOF 出力エラーを示します。
文字列をファイルに書き込みます。ただし,文字列のヌル区切り文字 (\0) はコピーしません。
#include <stdio.h>int fputs (const char *str, FILE *file_ptr);
str
文字列を指すポインタ。file_ptr
ファイル・ポインタ。
putsと異なり, fputs関数は出力文字列の末尾に改行文字を追加しません。putsも参照してください。
負でない値 正常終了を示します。 EOF エラーを示します。
1 文字のワイド文字を対応するマルチバイト値に変換し,結果を指定のファイルに書き込みます。
#include <wchar.h>wint_t fputwc (wint_t wc, FILE *file_ptr);
wc
wint_t型のオブジェクト。file_ptr
ファイル・ポインタ。
fputwc関数は, 1 文字のワイド文字をファイルに書き込み,その文字を返します。putwcも参照してください。
x ファイルに書き込んだ文字。正常終了を示します。 WEOF 出力エラーを示します。 errno は次の値に設定されます。
- EILSEQ---不正なワイド文字コードが検出されました。
I/O サブシステムからエラーが返された場合も, errno が次の値に設定されます。
- EBADF---ファイル記述子が不正です。
- EIO---I/O エラー。
- ENOSPC---ファイルを格納しているデバイスに空き領域がありません。
- ENXIO---デバイスが存在しません。
- EPIPE---パイプが壊れています。
- ESPIPE---追加のためにオープンされているファイルで不正なシークが行われました。
- EVMSERR---変換不可能な OpenVMS エラー。 vaxc$errno には OpenVMS エラー・コードが格納されます。これは,対応する C エラー・コードが定義されていない I/O エラーが発生したことを示します。
ワイド文字の文字列をファイルに書き込みます。ヌル区切り文字はコピーしません。
#include <wchar.h>int fputws (const wchar_t *wstr, FILE *file_ptr);
wstr
ワイド文字の文字列を指すポインタ。file_ptr
ファイル・ポインタ。
fputws関数は,指定されたワイド文字の文字列をマルチバイト文字列に変換し,その文字列を指定のファイルに書き込みます。ヌル・ワイド文字に対応する区切り文字のヌル・バイトは出力文字列に追加されません。
負でない値 正常終了を示します。 - 1 エラーを示します。この関数は errno を設定します。値の一覧については, fputwc を参照してください。
指定の数の項目をファイルから読み込みます。
#include <stdio.h>size_t fread (void *ptr, size_t size_of_item, size_t number_items, FILE *file_ptr);
ptr
メモリ内の記憶位置を指すポインタ。読み込んだ情報はその記憶位置に格納されます。ポインタが示すオブジェクトの型は,読み込む項目の型によって決定されます。size_of_item
読み込む項目のサイズ (バイト数)。number_items
読み込む項目の数。file_ptr
項目を読み込むファイルを示すポインタ。
size_t型は,次に示すように <stdio.h>ヘッダ・ファイルに定義されています。
typedef unsigned int size_t
読み込みはファイルの現在の位置から開始されます。読み込んだ項目は,最初の引数によって指定される記憶位置から始まる記憶域に格納されます。項目のサイズもバイト数で指定しなければなりません。
file_ptr によって示されるファイルがレコード・モードでオープンされている場合は, freadは size_of_item に number_items を乗算したバイト数をファイルから読み込みます。つまり,必ずしも number_items によって示される数のレコードが読み込まれるわけではありません。
n 読み込んだバイト数を size_of_item で除算した値。 0 ファイルの終端 (EOF) またはエラーを示します。
前に実行した calloc, malloc, realloc呼び出しで割り当てられた領域の割り当てを解除して,再割り当て可能な状態にします。
#include <stdlib.h>void free (void *ptr);
ptr
malloc, calloc, reallocの前の呼び出しから返されたアドレス。 ptr が NULL ポインタの場合は,動作は何も実行されません。
ANSI C 標準では, freeは値を返さない関数として定義されています。したがって, freeの関数プロトタイプは,戻り値の型が voidで宣言されています。しかし, freeが異常終了することもあり, HP C RTL の以前のバージョンでは, freeは intを返すように宣言されていたため, freeのインプリメンテーションでは,正常終了時に 0,異常終了時に - 1 を返します。
ファイル・ポインタによって示されるオープンされているファイルを,ファイル指定によって示されるファイルに置き換えます。オープンされているファイルはクローズされます。
#include <stdio.h>FILE *freopen (const char *file_spec, const char *a_mode, FILE *file_ptr, ...);
file_spec
有効な OpenVMS または UNIX 形式のファイル指定を格納した文字列を指すポインタ。関数呼び出しの後,指定のファイル・ポインタがこのファイルに関連付けられます。a_mode
アクセス・モード指示子。詳細については, fopen関数を参照してください。file_ptr
ファイル・ポインタ。...
省略可能なファイル属性引数。ファイル属性引数は, creat関数で使用される引数と同じです。
freopen関数は通常,定義済みの名前 stdin, stdout, stderrのいずれかをファイルに関連付けるために使用されます。これらの定義済みの名前の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。
file_ptr freopen が正常終了した場合は,ファイル・ポインタ。 NULL エラーを示します。
浮動小数点数値の小数部および指数部を計算します。
#include <math.h>double frexp (double value, int *eptr);
float frexp (float value, int *eptr); (Alpha only)
long double frexp (long double value, int *eptr); (Alpha only)
value
double, float, long double型の浮動小数点数値。eptr
frexpが指数を格納する intを指すポインタ。
frexp関数は浮動小数点数値 (value) を,次に示すように正規化された小数部と,2 のべき乗に分割します。
value = fraction * (2exp)
小数部は戻り値として返されます。指数部は, eptr によって示される整数変数に格納されます。
#include <math.h> main () { double val = 16.0, fraction; int exp; fraction = frexp(val, &exp); printf("fraction = %f\n",fraction); printf("exp = %d\n",exp); }
この例では, frexpは 16 という値を .5 * 2 5 に変換します。この例では次の出力が生成されます。
fraction = 0.500000 exp = 5
|value| = 無限大または NaN は,不正な引数です。
x value の小数部。 0 結果の小数部と整数部の両方が 0 です。 NaN value が NaN の場合は,NaN が返され, errno は EDOM に設定され, * eptr の値は不定になります。 value | value| = 無限大の場合は, value が返され, errno は EDOM に設定され, * eptr の値は不定になります。
指定されたファイルから書式設定された入力を実行し,その入力を書式指定に従って解釈します。
#include <stdio.h>int fscanf (FILE *file_ptr, const char *format_spec, ...);
file_ptr
入力テキストを提供するファイルを指すポインタ。format_spec
書式指定を格納した文字列を指すポインタ。変換文字の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。...
省略可能な式であり,この式の結果は書式指定に指定した変換指定に対応します。変換指定を指定しない場合は,入力ポインタを省略できます。変換指定を指定する場合は,関数呼び出しに変換指定と正確に同じ数の入力ポインタを指定する必要があります。変換指定は入力ポインタの型と一致しなければなりません。
変換指定は左から右への順に入力ソースに対応付けられます。入力ポインタの数の方が多い場合は,超過するポインタは無視されます。
次の例は変換指定を示しています。
#include <stdio.h> main () { int temp, temp2; fscanf(stdin, "%d %d", &temp, &temp2); printf("The answers are %d, and %d.", temp, temp2); }
stdinによって指定されるファイルに次の内容が格納されているとします。
4 17
この例の変換指定は次の結果を生成します。
The answers are 4, and 17.
書式指定と入力ポインタの詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。
x 正しく照合され,代入された入力項目の数。 EOF ファイルの終端 (EOF) が検出されたか,読み込みエラーが発生したことを示します。読み込みエラーが発生した場合は, errno は次のいずれかに設定されます。
- EILSEQ---不正な文字が検出されました。
- EVMSERR---変換不可能な OpenVMS エラー。 vaxc$errno には OpenVMS エラー・コードが格納されます。これはオーバフローのために数値への変換に失敗したことを示します。
I/O サブシステムからエラーが返された場合,この関数は errno を次の値に設定することがあります。
- EBADF---ファイル記述子が不正です。
- EIO---I/O エラー。
- ENXIO---デバイスが存在しません。
- EPIPE---パイプが壊れています。
- EVMSERR---変換不可能な OpenVMS エラー。 vaxc$errno には OpenVMS エラー・コードが格納されます。これは,対応する C エラー・コードが定義されていない I/O エラーが発生したことを示します。
ファイルの位置をファイル内の指定されたバイト・オフセットに設定します。
#include <stdio.h>int fseek (FILE *file_ptr, long int offset, int direction);
file_ptr
ファイル・ポインタ。offset
バイト数で指定したオフセット。direction
新しい位置を計算するために offset が加算される位置を示す整数。新しい位置は,direction が SEEK_SET の場合はファイルの先頭, direction が SEEK_CUR の場合はファイル位置指示子の現在の値, direction が SEEK_END の場合はファイルの終端 (EOF) になります。
fseek関数は,キャリッジ制御やストリーム・アクセス・ファイルを含まない固定長レコード・アクセス・ファイルの場合,ファイルの位置を任意のバイト・オフセットに設定できますが,他のすべてのファイルの場合はレコード境界にのみ設定できます。提供される標準 I/O 関数は,可変長または VFC レコード・ファイルを最初のバイト,ファイルの終端 (EOF),レコード境界のいずれかに設定します。したがって, fseekに指定する引数は次のいずれかを指定しなければなりません。
- ファイルの先頭または終端
- 現在の位置からオフセット 0 (任意のレコード境界)
- 前の有効な ftell呼び出しから返された位置
これらのレコード・タイプのファイルで任意の位置までシークするための移植可能な方法については, fgetposおよび fsetpos関数を参照してください。
警告
ストリーム・ファイルにアクセスするときに,ファイルの終端 (EOF) を超えてシークし,ファイルに書き込んだ場合, fseek関数はスキップしたバイトに 0 を埋め込むことにより,ホールを作成します。一般にレコード・ファイルに対して fseek関数を使用する場合, ftellに対する前の有効な呼び出しによって返された絶対位置に設定するか,あるいはファイルの先頭または終端に設定するようにしなければなりません。 fseekの呼び出しがこれらの条件を満たさない場合,結果は予測できません。
open, creat, dup, dup2, lseekも参照してください。
0 シークが正常終了したことを示します。 - 1 不正なシークが指定されたことを示します。
前へ | 次へ | 目次 | 索引 |