HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
decc$feature_get_valueを,インデックスではなく文字列の機能名で呼び出します。
#include <unixlib.h>int decc$feature_get (const char *name, int mode);
name
機能名 (文字列) を指すポインタ。このポインタを介して渡される名前は,サポート機能のリストにあるものでなければなりません。mode
返される機能値を指定するための整数値。指定できる mode の値は,次のとおりです。__FEATURE_MODE_DEFVAL デフォルト値
__FEATURE_MODE_CURVAL 現在の値
__FEATURE_MODE_MINVAL 最小値
__FEATURE_MODE_MAXVAL 最大値
__FEATURE_MODE_INIT_STATE 初期化状態
decc$feature_get関数を使用すれば, C RTL の内部テーブルへのインデックスではなく,文字列で表した機能名で decc$feature_get_value関数を呼び出すことができます。エラーが発生すると,そのエラーを示す値が errnoに設定されて, - 1 が返されます。
decc$feature_get_value, decc$feature_get_index, decc$feature_get_name, decc$feature_set, decc$feature_set_value, decc$feature_show,および decc$feature_show_allも参照してください。
n 指定した name 引数と mode 引数に対応する整数。 - 1 エラーを示します。 errno が設定されます。
機能値にアクセスするためのインデックスを返します。
#include <unixlib.h>int decc$feature_get_index (char *name);
name
サポートされる機能の一覧で,名前として渡される文字列を指すポインタ。
decc$feature_get_index関数は,サポートされる機能の一覧から, name として渡された文字列を検索します。名前が見つかると, decc$feature_get_indexは ( 負でない ) インデックスを返します。このインデックスを使用して,機能の値を設定したり,取得することができます。 name の比較では,大文字と小文字は区別されません。エラーが発生すると, - 1 が返され, errnoはエラーを示すように設定されます。
decc$feature_get, decc$feature_get_value, decc$feature_get_name, decc$feature_set, decc$feature_set_value, decc$feature_show,および decc$feature_show_allも参照してください。
n 負でないインデックス。このインデックスを使用して,機能に対して指定された値を設定するか,または値を取得することができます。 - 1 エラーを示します。 errno が設定されます。
機能名を返します。
#include <unixlib.h>char *decc$feature_get_name (int index);
index
0 から,割り当てられている最大の機能までの整数値。
decc$feature_get_name関数は,index で指定されるエントリの機能名を格納したヌル区切り文字列を指すポインタを返します。index の値は,0 から,割り当てられている最大の機能までの範囲です。 index の値に対応する機能がない場合は, NULL ポインタが返されます。エラーが発生すると,NULL が返され, errnoはエラーを示すように設定されます。
decc$feature_get, decc$feature_get_index, decc$feature_get_value, decc$feature_set, decc$feature_set_value, decc$feature_show,および decc$feature_show_allも参照してください。
x index で指定されるエントリの機能の名前を格納したヌル区切り文字列を指すポインタ。 NULL エラーを示します。 errno が設定されます。
引数 index と mode で指定した機能の機能値を返します。
#include <unixlib.h>int decc$feature_get_value (int index, int mode);
index
0 から,割り当てられている最大の機能までの整数値。mode
返す機能値を示す整数。mode に対して指定できる値は次のとおりです。__FEATURE_MODE_DEFVAL デフォルト値
__FEATURE_MODE_CURVAL 現在の値
__FEATURE_MODE_MINVAL 最小値
__FEATURE_MODE_MAXVAL 最大値
__FEATURE_MODE_INIT_STATE 初期化状態
decc$feature_get_value関数は, index によって指定される機能の値を取得します。 mode は,どの値を返すかを指定します。デフォルト値とは,論理名によって設定されていない場合や, decc$feature_set_valueの呼び出しで変更されていない場合に使用される値です。
mode = 4 の場合は,初期化状態が返されます。初期化状態の値は次のとおりです。
0 初期化されていない
1 論理名によって設定
2 decc$feature_set_valueによって設定
- 1---デフォルト値に初期化エラーが発生すると, - 1 が返され, errnoはエラーを示すように設定されます。
decc$feature_get, decc$feature_get_index, decc$feature_get_name, decc$feature_set, decc$feature_set_value, decc$feature_show,および decc$feature_show_allも参照してください。
n 指定された index 引数と mode 引数に対応する整数。 - 1 エラーを示します。 errno が設定されます。
decc$feature_set_valueを,インデックスではなく文字列の機能名で呼び出します。
#include <unixlib.h>int decc$feature_set (const char *name, int mode, int value);
name
機能名 (文字列) を指すポインタ。このポインタを介して渡される名前は,サポート機能のリストにあるものでなければなりません。mode
返される機能値を指定するための整数値。指定できる mode の値は,次のとおりです。__FEATURE_MODE_DEFVAL デフォルト値
__FEATURE_MODE_CURVAL 現在の値
__FEATURE_MODE_MINVAL 最小値
__FEATURE_MODE_MAXVAL 最大値
__FEATURE_MODE_INIT_STATE 初期化状態value
設定する機能値。
decc$feature_set関数を使用すれば, C RTL の内部テーブルへのインデックスではなく,文字列で表した機能名で decc$feature_set_value関数を呼び出すことができます。成功すると,この関数は,設定されていた以前の値を返します。
エラーが発生すると,そのエラーを示す値が errnoに設定されて, - 1 が返されます。
decc$feature_set_value, decc$feature_get, decc$feature_get_index, decc$feature_get_name, decc$feature_get_value, decc$feature_show,および decc$feature_show_allも参照してください。
n 設定されていた以前の機能値。 - 1 エラーを示します。 errno が設定されます。
index で指定される機能のデフォルト値または現在の値を設定します。
#include <unixlib.h>int decc$feature_set_value (int index, int mode, int value);
index
0 から,割り当てられている最大の機能までの整数値。mode
デフォルト値を設定するのか,現在の機能値を設定するのかを示す整数値。 mode に対して指定できる値は次のとおりです。0 デフォルト値
1 現在の値value
設定する機能値。
decc$feature_set_value関数は, index によって指定される機能のデフォルト値または現在の値 (mode 引数で指定) を設定します。この関数が正常終了すると,前の値が返されます。
エラーが発生すると, - 1 が返され, errnoはエラーを示すように設定されます。
decc$feature_get, decc$feature_get_index, decc$feature_get_name, decc$feature_get_value, decc$feature_set, decc$feature_show,および decc$feature_show_allも参照してください。
n 前の機能値。 - 1 エラーを示します。 errno が設定されます。
指定した機能名に対応する機能値を,すべて表示します。
#include <unixlib.h>int decc$feature_show (const char *name);
name
機能名 (文字列) を指すポインタ。このポインタを介して渡される名前は,サポート機能のリストにあるものでなければなりません。
decc$feature_show関数は, name で指定した機能名の値を stdoutにすべて表示します。次に,その例を示します。
--------- C RTL Feature Name --------- Cur Def Min Max Ini DECC$V62_RECORD_GENERATION 0 0 0 1 -1
エラーが発生すると,そのエラーを示す値が errnoに設定されて, - 1 が返されます。
decc$feature_get, decc$feature_get_index, decc$feature_get_name, decc$feature_get_value, decc$feature_set, decc$feature_set_value,および decc$feature_show_allも参照してください。
0 成功したことを示します。 - 1 エラーを示します。 errno が設定されます。
すべての機能名について,その機能値をすべて表示します。
#include <unixlib.h>int decc$feature_show_all (void);
decc$feature_show_all関数は,すべての機能名について,その機能値をすべて stdoutに表示します。エラーが発生すると,そのエラーを示す値が errnoに設定されて, - 1 が返されます。
decc$feature_get, decc$feature_get_index, decc$feature_get_name, decc$feature_get_value, decc$feature_set, decc$feature_set_value,および decc$feature_showも参照してください。
0 成功したことを示します。 - 1 エラーを示します。 errno が設定されます。
OpenVMS バイナリ・システム時刻を UNIX バイナリ時刻に変換します。
#include <unixlib.h>unsigned int decc$fix_time (void *vms_time);
vms_time
OpenVMS バイナリ時刻を格納したクォドワードのアドレス。
unsigned int quadword[2]; unsigned int *vms_time = quadword;
decc$fix_timeルーチンは, OpenVMS バイナリ・システム時刻 (1858 年 11 月 17 日 00:00 からの経過時間 (100 ナノ秒単位) を格納した 64 ビット・クォドワード) を UNIX バイナリ時刻 (1970 年 1 月 1 日 00:00 からの経過時間 (秒数) を格納したロングワード) に変換します。このルーチンは,OpenVMS システム・サービスおよび RMS サービスから返されたバイナリ時刻を, ctimeや localtimeなどの HP C RTL ルーチンで使用される形式に変換するのに役立ちます。
x 1970 年 1 月 1 日 00:00 からの経過時間 (秒数) を格納したロングワード。 ( unsigned int )( - 1) エラーを示します。戻り値 ( unsigned int )( - 1) は, 2106 年 2 月 7 日日曜日 06:28:15 という有効な日付も表すことに注意してください。
#include <unixlib.h> #include <stdio.h> #include <starlet.h> /* OpenVMS specific SYS$ routines) */ main() { unsigned int current_vms_time[2]; /*quadword for OpenVMS time*/ unsigned int number_of_seconds; /* number of seconds */ /* first get the current system time */ sys$gettim(¤t_vms_time[0]); /* fix the time */ number_of_seconds = decc$fix_time(¤t_vms_time[0]); printf("Number of seconds since 00:00 January 1, 1970 = %d", number_of_seconds); }
この例では, HP C で decc$fix_timeルーチンを使用する方法を示しています。また,SYS$GETTIM システム・サービスの使い方も示しています。
OpenVMS ファイル指定を UNIX 形式のファイル指定に変換します。
#include <unixlib.h>int decc$from_vms (const char *vms_filespec, int action_routine, int wild_flag);
vms_filespec
OpenVMS ファイル指定形式の名前を格納したヌル区切り文字列のアドレス。action_routine
指定された OpenVMS ファイル名から有効な UNIX 形式のファイル名への変換を格納したヌル区切り文字列を唯一の引数として受け付けるルーチンのアドレス。action_routine が 0 以外の値 (TRUE) を返した場合は,ファイル変換は続行されます。 0 (FALSE) を返した場合は,ファイル変換はそれ以上続行されません。
wild_flag
0 または 1 を値によって渡します。 0 を指定した場合は,vms_filespec で検出されたワイルドカードは展開されません。0 以外の値を指定した場合は,ワイルドカードが展開され,それぞれの展開結果が action_routine に渡されます。展開されたファイル名のうち,既存の UNIX 形式のファイルに対応するファイル名だけが渡されます。
decc$from_vmsルーチンは,指定された OpenVMS ファイル指定を対応する UNIX 形式のファイル指定に変換します。 OpenVMS ワイルドカードを指定することができます。ワイルドカードは UNIX 形式のファイル指定で,対応する既存のファイルのリストに変換されます。
x 指定された OpenVMS ファイル指定から作成されたファイル名の数。
/* This example must be run as a foreign command */ /* and be supplied with an OpenVMS file specification. */ #include <unixlib.h> #include <stdio.h> int main(int argc, char *argv[]) { int number_found; /* number of files found */ int print_name(); /* name printer */ printf("Translating: %s\n", argv[1]); number_found = decc$from_vms(argv[1], print_name, 1); printf("\n%d files found", number_found); } /* print the name on each line */ print_name(char *name) { printf("\n%s", name); /* will continue as long as success status is returned */ return (1); }
この例では, HP C で decc$from_vmsルーチンを使用する方法を示しています。コマンド・ラインに指定された OpenVMS ファイル指定と一致する既存のファイルをリストした lsコマンドの単純形式が作成されます。対応するファイルは UNIX 形式のファイル指定で表示されます。
| 前へ | 次へ | 目次 | 索引 |