日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

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


目次 索引




UNIX 形式のファイル指定を OpenVMS ファイル指定に変換します。

形式

#include <unixlib.h>

int decc$to_vms (const char *unix_style_filespec, int (*action_routine)(char *OpenVMS_style_filespec, int type_of_file), int allow_wild, int no_directory);


引数



unix_style_filespec

UNIX のファイル指定形式で名前を格納したヌル区切り文字列のアドレス。

action_routine

次の引数を受け付ける decc$to_vmsルーチンのアドレス。

  • OpenVMS 形式への変換の結果となるヌル区切り文字列を指すポインタ。

  • 次のいずれかの整数値。

    変換
    0 (DECC$K_FOREIGN) OpenVMS または VAXELN オペレーティング・システムを実行していないリモート・システムのファイル。
    2 (DECC$K_DIRECTORY) UNIX 形式のファイル名から OpenVMS のディレクトリに変換することを示す。
    1 (DECC$K_FILE) 変換の対象がファイルであることを示す。


    これらの値は,シンボル DECC$K_FOREIGN, DECC$K_DIRECTORY,DECC$K_FILE によってシンボルとして定義することができます。詳細については,例を参照してください。

action_routine が 0 以外の値 (TRUE) を返した場合は,ファイル変換は続行されます。0 (FALSE) を返した場合は,それ以降のファイル変換は行われません。

allow_wild

0 または 1 を値によって渡します。 0 を指定した場合は,unix_style_filespec で検出されたワイルドカードは展開されません。それ以外の場合は,ワイルドカードは展開され,それぞれの展開結果が action_routine に渡されます。展開されたファイル名のうち,既存の OpenVMS ファイルに対応するファイルだけが渡されます。

no_directory

次のいずれかの値の整数。

変換
0 ディレクトリは許可される。
1 文字列をディレクトリ名として展開することを禁止する。
2 強制的にディレクトリ名に変換する。


説明

decc$to_vms関数は,指定された UNIX 形式のファイル指定を対応する OpenVMS ファイル指定 (すべて大文字) に変換します。 UNIX 形式のワイルドカードを指定することができ,その場合は対応する OpenVMS ファイルのリストに変換されます。

decc$to_vmsの動作に影響する次の機能論理名については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.5 節を参照してください。

DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION
DECC$NO_ROOTED_SEARCH_LISTS

戻り値

x 指定された UNIX 形式のファイル指定から変換されたファイル名の数。


/* Translate "UNIX" wildcard file names to OpenVMS names */ 
/* Define as a foreign command and provide the name as   */ 
/* an argument.                                          */ 
 
#include <unixlib.h> 
#include <stdio.h> 
int print_name(char *, int); 
int main(int argc, char *argv[]) 
{ 
    int number_found;           /* number of files found */ 
 
    printf("Translating: %s\n", argv[1]); 
 
    number_found = decc$to_vms(argv[1], print_name, 1, 0); 
    printf("%d files found\n", number_found); 
} 
 
/* action routine that prints name and type on each line */ 
 
int print_name(char *name, int type) 
{ 
    if (type == DECC$K_DIRECTORY) 
        printf("directory: %s\n", name); 
    else if (type == DECC$K_FOREIGN) 
        printf("remote non-VMS: %s\n", name); 
    else 
        printf("file:        %s\n", name); 
 
/* Translation continues as long as success status is returned */ 
    return (1); 
} 

この例では, HP Cdecc$to_vmsルーチンを使用する方法を示しています。引数として UNIX 形式のファイル指定を受け付け, OpenVMS ファイル指定形式で対応する既存の各ファイルの名前を表示します。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.