|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
OpenVMS ファイル指定を UNIX 形式のファイル指定に変換します。
形式
#include <unixlib.h>
int decc$from_vms (const char *vms_filespec, int
action_routine, int wild_flag);
引数
vms_filespecOpenVMS ファイル指定形式の名前を格納したヌル区切り文字列のアドレス。
action_routine指定された OpenVMS ファイル名から有効な UNIX 形式のファイル名への変換を格納したヌル区切り文字列を唯一の引数として受け付けるルーチンのアドレス。
action_routine が 0 以外の値 (TRUE) を返した場合は,ファイル変換は続行されます。 0 (FALSE) を返した場合は,ファイル変換はそれ以上続行されません。
wild_flag0 または 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 形式のファイル指定で表示されます。
|