; hp; ヒューレット・パッカード;hewlett-packard; ヒューレット;コンパック;compaq; OS; OpenVMS;高い信頼性とスケーラビリティを提供するOS"> - OpenVMSのマニュアルページです。">
日本-日本語

 >  マニュアル >  V8.3ライブラリ

OpenVMS マニュアル


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


前へ 次へ 目次 索引




12.8 NFS

V5.4 とそれより前の TCP/IP Services for OpenVMS でも, UNIX サーバと OpenVMS のセーブセットとの間でシンボリック・リンクのバックアップと復元を正しく行えるようにするために, NFS クライアントでシンボリック・リンクをサポートしていました。しかし,その機能は限られたものでした。そのサポートでは,クライアントがアプリケーション ACE を使用して,ファイルにそれがシンボリック・リンクであることを示すフラグを付けていました。 Version 5.5 になっても,ODS-2 のマウントについては,クライアントでこれと同じ動作が引き継がれています。しかし,ODS-5 のマウントについては,クライアントでアプリケーション ACE を検出したときにシンボリック・リンクが作成されるようになりました。このサポートによって,バージョンの古いクライアントで作成されたセーブセットでも,新しいバージョンで復元できるようになっています。

12.9 DCL

OpenVMS の DCL コマンドとユーティティは,シンボリック・リンクを検出すると,所定の動作を行うようになっています。つまり,シンボリック・リンクは,通常の処理として,そのリンク先までたどるようになっています。たとえば,シンボリック・リンク LINKFILE.TXT が TEXT.TXT を指している場合に "type LINKFILE.TXT" というコマンドを入力すると,そのリンクがたどられて,TEXT.TXT に含まれているテキストが表示されます。

また,シンボリック・リンクは,それ自身が直接指定されていなくても,たどられるようになっています。たとえば," dir [...]*.TXT" というコマンドを処理しているときに,ディレクトリを参照しているシンボリック・リンクが検出されると,その参照先ディレクトリ (およびそのサブディレクトリ) にある, " .TXT" というタイプのファイルがすべて表示されます (注意: OpenVMS Version 8.3 でもディレクトリのワイルドカードを処理しますが,そのときにシンボリック・リンクの参照先がディレクトリであるかどうかは調べません)。

しかし,シンボリック・リンクを常にたどらない方がよい場合もあります。また,シンボリック・リンクをたどるかどうかをユーザが指定できる方がよい場合もあります。

以下のコマンドには,シンボリック・リンクを決してたどらないものと,シンボリック・リンクをたどるかどうかを指定できるものがあります。

BACKUP
バックアップ操作でシンボリック・リンクが検出されると,そのシンボリック・リンク自体がコピーされます。この動作は,すべてのバックアップ・タイプ (物理,イメージ,およびファイル) に適用されます。

COPY
/SYMLINK /NOSYMLINK (デフォルト)
入力ファイルがシンボリック・リンクの場合,そのシンボリック・リンクから参照されているファイルがコピーされます。
/SYMLINK 修飾子を指定すると,入力したシンボリック・リンクがすべてコピーされます。

CREATE
/SYMLINK="text"
シンボリック・リンクが作成されて,そこに,指定されたテキストが引用符なしで含められます。
作成されたシンボリック・リンクがその後でファイル名の処理中に検出されると,そのシンボリック・リンクの内容が読み取られ, POSIX パス名が指定されているものとして処理されます。
バージョンの古いシンボリック・リンクと共存させることはできません。

DELETE
入力ファイルがシンボリック・リンクの場合,そのシンボリック・リンク自体が削除されます。

DIRECTORY
/SYMLINK (デフォルト) /NOSYMLINK
入力ファイルがシンボリック・リンクの場合,そのシンボリック・リンク自体のファイル属性が表示されます。ファイルの属性を表示するように要求すると,シンボリック・リンクの内容も表示されます。その際,ファイル名と内容の間に矢印が置かれます (たとえば,LINK.TXT -> FILE.TXT)。
ファイル指定としてシンボリック・リンクを入力するとともに /NOSYMLINK 修飾子を指定すると,そのシンボリック・リンクから参照されているファイルのファイル属性が表示されます。ただし,表示される名前は,シンボリック・リンク自体の名前のままです。

DUMP
/SYMLINK /NOSYMLINK (デフォルト)
入力ファイルがシンボリック・リンクの場合,シンボリック・リンクから参照されているファイルがダンプされます。
/SYMLINK 修飾子を指定すると,入力したシンボリック・リンクがすべてダンプされます。

PURGE
入力ファイルがシンボリック・リンクの場合,そのシンボリック・リンク自体がパージされます。存在できるシンボリック・リンクのバージョンは 1 つだけであるため,このコマンドを実行しても,そのファイルに対する影響はありません。

RENAME
変換元ファイルがシンボリック・リンクの場合,そのシンボリック・リンク自体の名前が変更されます。
変更先ファイルがシンボリック・リンクであれば,この操作は失敗します。

SET FILE
/SYMLINK /NOSYMLINK (デフォルト)
入力ファイルがシンボリック・リンクの場合,そのシンボリック・リンクから参照されているファイルが設定されます。
/SYMLINK 修飾子を指定すると,そのシンボリック・リンク自体が設定されます。

注意

  • /EXCLUDE 修飾子を使用すれば,指定したシンボリック・リンクを対象から除外できます。除外されるシンボリック・リンクは,修飾子のファイル指定に一致したものです。シンボリック・リンクから参照されているファイルのファイル名は,その名前を指定しても除外されません。
    例:
    シンボリック・リンク LINK.TXT が,別のディレクトリにある TEXT.TXT を参照しているとします。
    /EXCLUDE=LINK.TXT と指定すると LINK.TXT が操作から除外されます (そのため,TEXT.TXT も除外されます)。

    /EXCLUDE=TEXT.TXT と指定すると, LINK.TXT も TEXT.TXT も操作から除外されません。

  • シンボリック・リンクを指定して F$FILE_ATTRIBUTES を実行すると,そのシンボリック・リンクから参照されているファイルが対象になります。これに対して,新しいレキシカル関数 F$SYMLINK_ATTRIBUTES の場合は,そのシンボリック・リンク自体の情報が返されます。また,新しいレキシカル関数 F$READLINK の場合は,入力ファイルがシンボリック・リンクであるとそのテキスト形式の内容が返され,入力ファイルがシンボリック・リンクでないと NULL が返されます。

  • 一部のコンパイラやユーティリティでは,入力ファイル指定,または修飾子に対する引数として,引用符で囲んだパス名を指定できます。このようなコンパイラやユーティリティには, C コンパイラ,C++ コンパイラ,CXXLINK,Linker,および Librarian があります。 Linker については,オプション・ファイルにも引用符で囲んだパス名を含めることができます。コンパイラの /INCLUDE_DIRECTORY 修飾子については,引用符で囲んだパス名ではなく,以前と同じ標準の POSIX パス名を指定できます。 Java コンパイラについても,以前と同じ標準の POSIX パス名を指定できます。また,SET DEFAULT の入力には,引用符で囲んだパス名を指定できます。



12.10 GNV

GNV は,OpenVMS システムで Open Group のユーティリティを使用できるようにするためのメカニズムです。 GNV はオープン・ソース・プロジェクトになっていて, Sourceforge の Web サイトでアップデートがリリースされています。 GNV は,OpenVMS Open Source CD から入手することもできます。

GNV は,そのファイル・アクセス機能を C RTL にすべて依存しているので,いっさい変更されていません。その理由は,提供されているユーティリティが, Open Group で定義されているシンボリック・リンクの仕様に従って動作するようにする必要があるからです。ユーザが新しいシンボリック・リンクと POSIX パス名のサポートを利用する場合は, BASH を起動する前に, C RTL の DECC$POSIX_COMPLIANT_PATHNAMES 機能論理名を適切に設定する必要があります。

12.11 制限事項

シンボリック・リンクのサポートには,次の制約があります。

  • シンボリック・リンクに対して SET FILE/REMOVE は実行できない。
    シンボリック・リンクを対象にして SET FILE/REMOVE を実行しても,そのシンボリック・リンクは削除されません。また,エラーも表示されません。

  • RMS とシンボリック・リンクに関するコーディング上の注意事項
    シンボリック・リンクと POSIX パス名の処理を導入すると,それに伴って,ファイル指定の中のデバイス名が,そのファイルの存在しているデバイスを正しく示さなくなってしまうことがあります。 SYS$PARSE/SYS$SEARCH から返される NAM$T_DVI を調べれば,そのファイルの存在しているデバイスを確認することができます。




付録 A
バージョンへの依存性を示す表

HP C の各バージョンでは,新しい関数が HP C ランタイム・ライブラリに追加されています。これらの関数は実装され, OpenVMS オペレーティング・システムとともに提供されますが,これらの関数のプロトタイプを格納したヘッダ・ファイルとドキュメントは, HP C コンパイラの各バージョンに付属しています。

HP C の新しいバージョンには,古い OpenVMS システムではサポートされていない関数のヘッダ・ファイルとドキュメントが含まれている可能性があります。たとえば,ターゲットのオペレーティング・システム・プラットフォームが OpenVMS Version 7.2 の場合, OpenVMS Version 7.3 で導入された HP C RTL 関数を使用することはできませんが,これらの関数もドキュメントに記載されています。

この付録では,OpenVMS の最近のバージョンでどの HP C RTL 関数がサポートされているかをまとめた表を示します。これらの表は,ターゲットの OpenVMS プラットフォームで使用できない関数を判断するのに役立ちます。

A.1 OpenVMS VAX,Alpha,および I64 のすべてのバージョンで使用できる関数

表 A-1 は, OpenVMS VAX および OpenVMS Alpha のすべてのバージョンで使用できる関数を示しています。

表 A-1 すべての OpenVMS システムで使用できる関数
abort abs アクセス acos
alarm asctime asin assert
atan2 atan atexit atof
atoi atoll (Alpha) atol atoq (Alpha)
box brk bsearch cabs
calloc ceil cfree chdir
chmod chown clearerr clock
close cosh cos creat
ctermid ctime cuserid decc$crtl_init
decc$fix_time decc$from_vms decc$match_wild decc$record_read
decc$record_write decc$set_reentrancy decc$to_vms decc$translate_vms
delete delwin difftime div
dup2 dup ecvt endwin
execle execlp execl execve
execvp execv exit _exit
exp fabs fclose fcvt
fdopen feof ferror fflush
fgetc fgetname fgetpos fgets
fileno floor fmod fopen
fprintf fputc fputs fread
free freopen frexp fscanf
fseek fsetpos fstat fsync
ftell ftime fwait fwrite
gcvt getchar getcwd getc
getegid getenv geteuid getgid
getname getpid getppid gets
getuid getw gmtime gsignal
hypot initscr isalnum isalpha
isapipe isascii isatty iscntrl
isdigit isgraph islower isprint
ispunct isspace isupper isxdigit
kill labs ldexp ldiv
llabs (Alpha) lldiv (Alpha) localeconv localtime
log10 log longjmp longname
lseek lwait malloc mblen
mbstowcs mbtowc memchr memcmp
memcpy memmove memset mkdir
mktemp mktime modf mvwin
mv[w]addstr newwin nice open
overlay overwrite pause perror
pipe pow printf putchar
putc puts putw qabs (Alpha)
qdiv (Alpha) qsort raise rand
read realloc remove rename
rewind sbrk scanf scroll
setbuf setgid setjmp setlocale
setuid setvbuf sigblock signal
sigpause sigstack (VAX) sigvec sinh
sin sleep sprintf sqrt
srand sscanf ssignal stat
strcat strchr strcmp strcoll
strcpy strcspn strerror strftime
strlen strncat strncmp strncpy
strpbrk strrchr strspn strstr
strtod strtok strtoll (Alpha) strtol
strtoq (Alpha) strtoull (Alpha) strtoul strtouq (Alpha)
strxfrm subwin system tanh
tan times time tmpfile
tmpnam toascii tolower _tolower
touchwin toupper _toupper ttyname
umask ungetc vaxc$calloc_opt vaxc$cfree_opt
vaxc$crtl_init vaxc$establish vaxc$free_opt vaxc$malloc_opt
vaxc$realloc_opt va_arg va_count va_end
va_start va_start_1 vfork vfprintf
vprintf vsprintf wait wcstombs
wctomb write [w]addch [w]addstr
[w]clear [w]clrattr [w]clrtobot [w]clrtoeol
[w]delch [w]deleteln [w]erase [w]getch
[w]getstr [w]inch [w]insch [w]insertln
[w]insstr [w]move [w]printw [w]refresh
[w]scanw [w]setattr [w]standend [w]standout


前へ 次へ 目次 索引



         印刷用画面へ

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