日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル >  V8.3ライブラリ

OpenVMS マニュアル


HP OpenVMS
HP C ランタイム・ライブラリ・
リファレンス・マニュアル (下巻)


前へ 次へ 目次 索引





funlockfile (Alpha, I64)

stdioストリームをアンロックします。



形式

#include <stdio.h>

void funlockfile (FILE *file_ptr);




引数



file_ptr

ファイル・ポインタ。



説明

funlockfile関数は, stdioストリームをアンロックします。ロックを保持していたスレッドは,ストリームの排他使用を手放すことになります。

引数のファイル・ポインタは,正しいことが前提です。 flockfileは,ファイル・ポインタが無効でもロックを実行します。また, funlockfile関数は,呼び出し元スレッドが引数のファイル・ポインタのロックを所有していない場合でも,エラーになりません。

対応する flockfilefunlockfileの呼び出しは,ネストさせることができます。ストリームを再帰的にロックすると,対応する最後の funlockfileを呼び出すまでは,ストリームはロックされたままになります。

すべての C RTL ファイル・ポインタ入出力関数は, flockfileおよび funlockfileを呼び出したかのように,ファイル・ポインタをロックします。

flockfileおよび ftrylockfileも参照してください。




fwait

特定のファイルに対する I/O が完了するのを待ちます。



形式

#include <stdio.h>

int fwait (FILE *fp);




引数



fp

オープンされているファイルに対応するファイル・ポインタ。



説明

fwait関数は主に,保留状態の非同期 I/O が完了するのを待つために使用されます。



戻り値

0 正常終了を示します。
-1    エラーを示します。




fwide

ストリームの単位を判断し,設定します。



形式

#include <wchar.h>

int fwide (FILE *stream, int mode);




引数



stream

ファイル・ポインタ。

mode

ストリームの単位を指定する値。



説明

fwide関数は,stream によって示されるストリームの単位を判断し,ストリームの単位が設定されていない場合は,次の方法で mode 引数に従って設定します。

mode 引数: fwide 関数の動作:
0 より大きい場合 ストリームをワイド文字単位に設定する。
0 より小さい場合 ストリームをバイト単位に設定する。
0 の場合 ストリームの単位を変更しない。

ストリームの単位がすでに設定されている場合は, fwideは単位を変更しません。 fwideに対してエラー状態が定義されていないため, fwideが 0 を返した場合は,呼び出し元のアプリケーションは errnoを確認する必要があります。




戻り値

> 0 呼び出しの後,ストリームはワイド文字単位になります。
< 0 呼び出しの後,ストリームはバイト単位になります。
0 呼び出しの後,ストリームは単位が設定されない状態になるか,またはストリーム引数が不正です。 errno が設定されます。




fwprintf

ワイド文字の書式文字列の制御のもとで出力をストリームに書き込みます。



形式

#include <wchar.h>

int fwprintf (FILE *stream, const wchar_t *format, ...);




引数



stream

ファイル・ポインタ。

format

書式指定を格納したワイド文字の文字列を指すポインタ。書式指定および変換指定とそれに対応する引数の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。

...

省略可能な式であり,式の型は書式指定に指定した変換指定に対応します。

変換指定を指定しない場合は,出力ソースを省略できます。変換指定を指定する場合は,関数呼び出しに変換指定と正確に同じ数の出力ソースを指定する必要があります。変換指定は出力ソースの型と一致しなければなりません。

変換指定は左から右への順に出力ソースに対応付けられます。出力ソースの数の方が多い場合は,超過するソースは無視されます。




説明

fwprintf関数は, format によって示されるワイド文字の文字列の制御のもとで, stream によって示されるストリームに出力を書き込みます。書式指定は,後続の引数を出力に変換する方法を指定します。書式指定に対して引数が不足している場合は,動作は未定義になります。引数が残っているのに,書式指定が不足する場合は,超過する引数は評価されますが,無視されます。書式指定文字列の末尾が検出されると, fwprintf関数は制御を呼び出し元に返します。

format 引数は,次のような 0 個以上のディレクティブで構成されます。

  • 通常のワイド文字 (パーセント記号 (%) を除く)

  • 変換指定




戻り値

n 書き込んだワイド文字の文字数。
負の値 エラーを示します。 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 エラーが発生したことを示します。




次の例では,日付と時刻を "Sunday, July 3, 10:02" という形式でプリントし,その後, pi を小数点以下 5 桁まで印刷する方法を示しています。


 #include <math.h> 
 #include <stdio.h> 
 #include <wchar.h> 
 /*...*/ 
 wchar_t *weekday, *month; /* pointers to wide-character strings */ 
 int day, hours, min; 
 fwprintf(stdout, L"%ls, %ls %d, %.2d:%.2d\n", 
    weekday, month, day, hour, min); 
 fwprintf(stdout, L"pi = %.5f\n", 4 * atan(1.0)); 
    




fwrite

指定された数の項目をファイルに書き込みます。



形式

#include <stdio.h>

size_t fwrite (const 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 によって示されるファイルがレコード・ファイルの場合は, fwrite関数は少なくとも number_items 個のレコードを出力します。各レコードの長さは size_of_item です。




戻り値

x 書き込んだ項目の数。書き込まれるレコードの数は,ファイルの最大レコード・サイズに応じて異なります。




fwscanf

ワイド文字の書式指定文字列の制御のもとで,ストリームから入力を読み込みます。



形式

#include <wchar.h>

int fwscanf (FILE *stream, const wchar_t *format, ...);




引数



stream

ファイル・ポインタ。

format

書式指定を格納したワイド文字の文字列を指すポインタ。書式指定と変換指定,および対応する引数の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。

...

省略可能な式であり,式の結果は書式指定に指定した変換指定に対応します。書式指定と変換指定,およびそれに対応する引数の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。

変換指定を指定しない場合は,入力ポインタを省略できます。変換指定を指定する場合は,関数呼び出しに変換指定と正確に同じ数の入力ポインタを指定する必要があります。変換指定は入力ポインタの型と一致しなければなりません。

変換指定は左から右への順に入力ソースに対応付けられます。入力ポインタの数の方が多い場合は,超過するポインタは無視されます。




説明

fwscanf関数は, format によって示されるワイド文字の文字列の制御のもとで, stream によって示されるストリームから入力を読み込みます。書式指定に対して引数が不足している場合は,動作は未定義になります。引数が残っているのに,書式指定が不足する場合は,超過する引数は評価されますが,無視されます。

書式指定は,次のような 0 個以上のディレクティブで構成されます。

  • 1 つ以上の空白ワイド文字

  • 通常のワイド文字 (パーセント記号 (%)) と空白ワイド文字を除く)

  • 変換指定

各変換指定はワイド文字 % から始まります。

stream 引数によって示されるストリームがバイト単位でもワイド文字単位でもない場合は, fwscanfはストリームをワイド文字単位に設定します。




戻り値

n 代入した入力項目の数。提供された項目の数より少なくなることがあり,早い段階で照合エラーが発生した場合は,0 になることもあります。
EOF エラーを示します。変換の前に入力エラーが発生しました。




gcvt

引数をヌル区切りの ASCII 数字列に変換し,文字列のアドレスを返します。



形式

#include <stdlib.h>

char *gcvt (double value, int ndigit, char *buffer);

関数バリアント gcvt関数には, _gcvt32および _gcvt64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。


引数



value

ヌル区切りの ASCII 数字列に変換される double型のオブジェクト。

ndigit

変換後の数字列で使用される ASCII 数字の桁数。 ndigit が 6 未満の場合は,値は 6 になります。

buffer

変換後の数字列を格納する記憶域の位置。



説明

gcvt関数は,変換された文字列をバッファに格納し,バッファのアドレスを返します。可能な場合は, gcvtは F 形式で有効桁 ndigit 桁の数字を生成します。不可能な場合は E 形式で生成します。後続の 0 は削除されます。

ecvtfcvtgcvt関数は,浮動小数点演算に関して IEEE 標準で指定されている次の特殊な値を表します。

表現
クワイエット NaN NaNQ
シグナリング NaN NaNS
+無限大 無限大
- 無限大 - 無限大

これらの各値に割り当てられる符号は,sign 引数に格納されます。 IEEE 浮動小数点表現では,0 (ゼロ) という値は正の場合も負の場合もあり,どちらであるかは sign 引数によって設定されます。

fcvtおよび ecvtも参照してください。




戻り値

x バッファのアドレス。




getc

指定されたファイルから次の文字を返します。



形式

#include <stdio.h>

int getc (FILE *file_ptr);




引数



file_ptr

アクセスするファイルを指すポインタ。



説明

getcマクロは,file_ptr パラメータで指定された入力ストリームから次のバイトを取り出して返し,ファイル・ポインタが定義されていれば,ファイル・ポインタを入力ストリーム中で 1 バイト進めます。

getcはマクロであるため,副作用のあるファイル・ポインタ引数 ( たとえば, getc (*f++)) は正しく評価されないことがあります。このような場合は,代わりに fgetc関数を使用してください。 fgetc関数を参照してください。

getc_unlockedも参照してください。




戻り値

n 返された文字。
EOF アァイルの終端 (EOF) またはエラーを示します。




getc_unlocked (Alpha, I64)

getcマクロと同様ですが, flockfilefunlockfileで保護された範囲内だけで使用します。



形式

#include <stdio.h>

int getc_unlocked (FILE *file_ptr);




引数



file_ptr

ファイル・ポインタ。



説明

リエントラント版である getcマクロは,複数スレッドからの同時呼び出しに対してロックされます。その結果,ストリームの一貫性を保証するためのオーバヘッドが生じます。アンロック版である getc_unlockedを使用すると,このオーバヘッドを避けることができます。 getc_unlockedマクロは, getcマクロと機能的に同じですが,スレッド・セーフな方法で実装する必要がない点が異なります。 getc_unlockedマクロは, flockfile関数と funlockfile関数を対で使用して保護された範囲内でだけ,安全に使用することができます。呼び出し元は, getc_unlockedを使用する前に,ストリームを確実にロックする必要があります。

getc_unlockedはマクロであるため,副作用のあるファイル・ポインタ引数は正しく評価されないことがあります。このような場合は,代わりに fgetc_unlocked関数を使用してください。

flockfileftrylockfile,および funlockfileも参照してください。




戻り値

n 返された文字。
EOF ファイルの終端 (EOF) またはエラーを示します。




[w]getch

端末画面から 1 文字を取得し,その文字を指定のウィンドウに表示します。 getch関数は文字を stdscrウィンドウに表示します。



形式

#include <curses.h>

char getch();

char wgetch (WINDOW *win);




引数



win

ウィンドウを指すポインタ。



説明

getch関数と wgetch関数は,文字を読み込む前に,指定されたウィンドウの表示を更新します。詳細については, scrollok関数を参照してください。



戻り値

x 返された文字。
ERR 関数が画面を不正にスクロールすることを示します。


前へ 次へ 目次 索引



         印刷用画面へ

プライバシー 本サイト利用時の合意事項