日本-日本語

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

OpenVMS マニュアル


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


前へ 次へ 目次 索引





vsprintf

引数リストに基づいて,書式付きの出力をプリントします。

この関数は sprintf関数に似ていますが,可変個の引数を指定して呼び出される代わりに, va_start( また,おそらくはそれ以降の va_arg呼び出し ) によって初期化された引数リストを指定して呼び出される点が異なります。




形式

#include <stdio.h>

int vsprintf (char *str, const char *format, va_list ap);




引数



str

書式付き出力を受け取る文字列へのポインタ。この文字列は,出力を保持できるだけの大きさであると仮定されます。

format

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

ap

結果として得られる型が,書式指定で与えられた変換指定に対応する式のリスト。



戻り値

x 書き込まれたバイト数。
負の値 出力エラーが発生したことを示します。関数は errno を設定します。設定される可能性のある errno 値のリストについては, fprintf を参照してください。




vsscanf

引数リストに基づいて,書式付きの入力を読み込みます。



形式

#include <stdio.h>

int vsscanf (char *str, const char *format, va_list ap);




引数



str

sscanfへの入力テキストを提供する文字列のアドレス。

format

書式指定を含んだ文字列へのポインタ。

ap

結果として得られる型が,書式指定で与えられた変換指定に対応する式のリスト。



説明

vsscanf関数は sscanf関数に似ていますが,可変個の引数を指定して呼び出される代わりに, va_start( また,おそらくはそれ以降の va_arg呼び出し ) によって初期化された引数リストを指定して呼び出される点が異なります。

また, vsscanf関数は,第 1 引数がストリームではなくワイド文字列を指定するという点を除けば, vfscanf関数と等価です。ワイド文字列の終端に達するのは, vfscanf関数で EOF を検出することに対応します。

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

vsscanfおよび sscanfも参照してください。




戻り値

n 照合に成功し,代入が行われた入力項目の数。
EOF 変換が行われる前に読み込みエラーが発生したことを示します。関数は errno を設定します。この関数が設定する値のリストについては, vfscanf を参照してください。




vswprintf

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



形式

#include <wchar.h>

int vswprintf (wchar_t *s, size_t n, const wchar_t *format, va_list ap);




引数



s

マルチバイト文字シーケンスへのポインタ。

n

マルチバイト文字を構成するバイト数の最大値。

format

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

ap

出力に必要な項目の可変リスト。



説明

vswprintf関数は,可変引数リストが ap 引数に置き換えられていることを除けば, swprintf関数と等価です。 ap の初期化は va_startマクロを使って,またおそらくはそれ以降の va_arg呼び出しを使って行います。

swprintfも参照してください。




戻り値

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 エラーが発生した可能性がある。




vswscanf

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



形式

#include <wchar.h>

int vswscanf (wchar_t *s, const wchar_t *format, va_list ap);




引数



s

入力を取得するワイド文字列へのポインタ。

format

書式指定を含んだワイド文字列へのポインタ。

ap

結果として得られる型が,書式指定で与えられた変換指定に対応する式のリスト。



説明

vswscanf関数は swscanf関数に似ていますが,可変個の引数を指定して呼び出される代わりに, va_start( また,おそらくはそれ以降の va_arg呼び出し ) によって初期化された引数リスト (ap) を指定して呼び出される点が異なります。

また, vswscanf関数は,第 1 引数がストリームではなくワイド文字列を指定するという点を除けば, vfwscanf関数と等価です。ワイド文字列の終端に達するのは, vfwscanf関数で EOF を検出することに対応します。

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

vfwscanfおよび swscanfも参照してください。




戻り値

n 読み込んだワイド文字の数。
EOF 変換が行われる前に読み込みエラーが発生したことを示します。関数は errno を設定します。この関数が設定する値のリストについては, vfscanf を参照してください。




vwprintf

ワイド文字書式文字列の制御下で,ワイド文字の配列に出力を書き込みます。



形式

#include <wchar.h>

int vwprintf (const wchar_t *format, va_list ap);




引数



format

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

ap

出力に必要な項目の可変リスト。



説明

vwprintf関数は,可変引数リストが ap 引数に置き換えられていることを除けば, wprintf関数と等価です。 apの初期化は va_startマクロを使って,またおそらくはそれ以降の va_arg呼び出しを使って行います。 vwprintf関数は va_endマクロを呼び出しません。

wprintfも参照してください。




戻り値

x 書き込まれたワイド文字の数。終端の null ワイド文字は含みません。
負の値 エラーを示します。 n 個以上のワイド文字の書き込みが要求されたか,変換エラーが発生しました。後者の場合, errno は EILSEQ に設定されます。




vwscanf

ワイド文字書式文字列の制御下で,ワイド文字の配列から入力を読み込みます。



形式

#include <wchar.h>

int vwscanf (const wchar_t *format, va_list ap);




引数



format

書式指定を含んだワイド文字列へのポインタ。

ap

結果として得られる型が,書式指定で与えられた変換指定に対応する式のリスト。



説明

vwscanf関数は wscanf関数に似ていますが,可変個の引数を指定して呼び出される代わりに, va_start(また,おそらくはそれ以降の va_arg呼び出し) によって初期化された引数リスト (ap) を指定して呼び出される点が異なります。

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

wscanfも参照してください。




戻り値

n 読み込まれたワイド文字の数。
EOF 変換が行われる前に読み込みエラーが発生したことを示します。関数は errno を設定します。この関数が設定する値のリストについては, vfscanf を参照してください。




wait

終了する前に,子プロセスの状態をチェックします。子プロセスは,親プロセスが終了するときに終了します。



形式

#include <wait.h>

pid_t wait (int *status);




引数



status

終了した子プロセスの最終的な状態が格納される位置のアドレス。子プロセスは exit関数を使って状態を設定することができ,親プロセスは status を指定することでこの値を取得することができます。



説明

wait関数は,終了した子プロセスの最終的な状態が子から返されるまで,親プロセスを一時停止します。

OpenVMS Version 7.0 およびそれ以降のシステムでは, <wait.h>をインクルードし, _POSIX_EXIT機能テスト・マクロを指定してコンパイルした場合には (/DEFINE=_POSIX_EXIT を指定するか,ファイルの先頭で他のファイルをインクルードする前に #define _POSIX_EXITを使用する), wait関数は waitpid( 0, status, 0 )と等価です。




戻り値

x 終了した子プロセスのプロセス ID (PID)。複数の子プロセスが作成されていた場合, wait は終了した子のうち最後に作成された子の PID を返します。それ以降の呼び出しでは,終了した子のうちその前に作成された子の PID を返します。
-1    子プロセスはスポーンされていませんでした。




wait3

子プロセスが停止または終了するのを待ちます。



形式

#include <wait.h>

pid_t wait3 (int *status_location, int options, struct rusage *resource_usage);




引数



status_location

<wait.h>ヘッダ・ファイルに定義されている,子プロセスの終了状態を含んでいる位置へのポインタ。

OpenVMS Version 7.2 およびそれ以降, _VMS_WAIT マクロを定義してコンパイルした場合, wait3関数は status_location 引数で指定されたアドレスに,子プロセスの OpenVMS 完了コードを格納するようになりました。

options

関数の動作を変更するフラグ。これらのフラグの定義は,説明のセクションに示しています。

resource_usage

終了した子プロセスのリソース利用情報を含んでいる構造体の位置。



説明

wait3関数は,要求が完了するまで呼び出し元プロセスを一時停止し,呼び出し元スレッドのみが一時停止するように再定義を行います。

options 引数は関数の動作を変更します。 options 引数のフラグは,ビット論理和を指定することで組み合わせることができます。以下にフラグを示します。

WNOWAIT status_location に状態が返されるプロセスを,待機可能状態に置くよう指定する。このプロセスを再び待っても,同じ結果が得られる。
WNOHANG 呼び出し元プロセスが一時停止しないようにする。停止または終了した子プロセスが複数存在する場合には, WNOHANG フラグが指定されなかった場合と同様に,そのうちの 1 つが選ばれ, waitpid 関数はその子プロセスのプロセス ID を返す。終了したプロセスが存在しない (つまり, waitpid が呼び出し元プロセスを WNOHANG フラグなしで一時停止した ) 場合には,0 (ゼロ) が返される。プロセス 0 を待つことはできないので,この戻り値から混乱が生じることはない。
WUNTRACED 子プロセスが SIGTTIN,SIGTTOU,SIGSTOP,または SIGTSTOP シグナルを受信したために,カレント・プロセスの子プロセスが停止したときに,呼び出しに追加情報を返させるように指定する。

wait3関数が,子プロセスの状態が入手可能であるために返った場合には,子プロセスのプロセス ID が返されます。情報は,status_location が null でなければ,このポインタがポイントしている位置に格納されます。

status_location がポイントする位置に格納される値が 0 (ゼロ) になるのは,状態が以下のいずれかを行った終了した子プロセスから返された場合に限られます。

  • main関数から 0 を返した。

  • _exitまたは exit関数の status 引数として 0 を渡した。

status_location の値にかかわらず,この情報は, <wait.h>ヘッダ・ファイルに定義されている,整数式に評価されるマクロを使って定義することができます。以下のマクロの説明では, status_value 引数は status_location 引数がポイントしている整数値と等しい値です。

WIFEXITED (status_value ) 正常に終了した子プロセスの状態が返された場合に,ゼロ以外の値に評価される。
WEXITSTATUS (status_value ) WIFEXITED (status_value ) の値がゼロ以外である場合,このマクロは,子プロセスが _exit または exit 関数に渡した status 引数の下位 8 ビットか,子プロセスが main 関数から返した値に評価される。
WIFSIGNALED (status_value ) キャッチされなかったシグナルが受信されたために終了した子プロセスの状態が返された場合に,ゼロ以外の値に評価される。
WTERMSIG (status_value ) WIFSIGNALED (status_value ) の値がゼロ以外である場合,このマクロは,子プロセスを終了させたシグナルの番号に評価される。
WIFSTOPPED (status_value ) 現在停止している子プロセスの状態が返された場合に,ゼロ以外の値に評価される。
WSTOPSIG (status_value ) WIFSTOPPED (status_value ) の値がゼロ以外である場合,このマクロは,子プロセスを停止させたシグナルの番号に評価される。
WIFCONTINUED (status_value ) 実行を再開した子プロセスの状態が返された場合に,ゼロ以外の値に評価される。

status_location がポイントする位置に格納された情報が, WUNTRACEDフラグを指定した wait3呼び出しによって格納されていた場合には,以下のいずれかのマクロがゼロ以外の値に評価されます。

  • WIFEXITED(*status_value)

  • WIFSIGNALED(*status_value)

  • WIFSTOPPED(*status_value)

  • WIFCONTINUED(*status_value)

status_location がポイントする位置に格納された情報が, WUNTRACEDフラグを指定しない wait3呼び出しによって格納されていた場合には,以下のいずれかのマクロがゼロ以外の値に評価されます。

  • WIFEXITED(*status_value)

  • WIFSIGNALED(*status_value)

wait3関数は BSD システムとの互換性を備えています。 resource_usage 引数は, <resource.h>ヘッダ・ファイルに定義されている子プロセス用のリソース使用情報を含んだ位置をポイントします。

親プロセスが,すべての子プロセスが終了するのを待たずに終了した場合,残った子プロセスには, initプロセスのプロセス ID に等しい親プロセス ID が割り当てられます。

exit_exit,および initも参照してください。




戻り値

0 成功を示します。停止または終了した子プロセスは存在せず, WNOHANG オプションが指定されています。
x 子プロセスの process_id。子プロセスの状態が取得可能です。
-1    エラーを示します。 errno は以下のいずれかの値に設定されます。

  • ECHILD---待機すべき子プロセスが存在しない。

  • EINTR---呼び出し元プロセスがキャッチしたシグナルの受信によって終了した。

  • EFAULT--- status_location または resource_usage 引数は,プロセスのアドレス空間の外の位置をポイントしている。

  • EINVAL--- options 引数の値が無効である。


前へ 次へ 目次 索引



         印刷用画面へ

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