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


OpenVMS マニュアル


 

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

タイトルページ
目次
まえがき
第 1 章:はじめに
第 2 章:入出力について
第 3 章:文字/文字列/引数リスト関数
第 4 章:エラー処理とシグナル処理
第 5 章:サブプロセス関数
第 6 章:Curses画面管理関数とマクロ
第 7 章:算術関数
第 8 章:メモリ割り当て関数
第 9 章:システム関数
第 10 章:国際化ソフトウェアの開発
第 11 章:日付/時刻関数
第 12 章:シンボリックリンクとPOSIXパス名
付録 A:各OSバージョンでサポートする関数一覧
付録 B:非標準ヘッダに複製されているプロトタイプ
索引
PDF
OpenVMS ホーム

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


目次 索引

DECC$FIXED_LENGTH_SEEK_TO_EOF を無効に設定すると,固定長レコードのファイルに対して SEEK_EOF を設定して呼び出した場合, lseekfseekfseekoはファイル内の最後のレコードの末尾を基準にして位置を設定します。

DECC$GLOB_UNIX_STYLE

DECC$GLOB_UNIX_STYLE を有効にすると, glob関数の UNIX モードが選択され, OpenVMS スタイルのファイル名やワイルドカードの代わりに, UNIX スタイルのファイル名やワイルドカードが使用されます。

DECC$LOCALE_CACHE_SIZE

DECC$LOCALE_CACHE_SIZE は,ロケール・データをキャッシュに格納するために割り振るメモリ容量をバイト数で定義します。デフォルト値は 0 であり,その場合はロケール・キャッシュは無効になります。

デフォルト値: 0

最大値: 2147483647

DECC$MAILBOX_CTX_STM

デフォルト設定では,パイプではないローカル・メールボックスに対する openは, FAB$M_CR というレコード属性を持つものとして,メールボックス・レコードを取り扱います。

DECC$MAILBOX_CTX_STM を有効に設定すると,レコード属性 FAB$M_CR は設定されません。

DECC$NO_ROOTED_SEARCH_LISTS

decc$to_vms関数は,UNIX 形式のパス文字列を評価する際に,論理名となる 1 番目の要素を検出すると,次の処理を行います。

  • 最上位の論理名またはデバイスの場合は,論理名に ":[000000]" を付加します。
    たとえば, log1が最上位の論理名 ($DEFINE LOG1 [DIR_NAME.]) の場合, /log1/filename.extは LOG1:[000000]FILENAME.EXT に変換されます。

  • 最上位でない論理名の場合は,論理名にコロン (:) だけを付加します。
    たとえば, log2が最上位でない論理名 ($ DEFINE LOG2 [DIR_NAME]) の場合, /log2/filename.extは LOG2:FILENAME.EXT に変換されます。

  • 1 番目の要素が検索リスト論理名の場合,変換は,検索リスト内の 1 番目の要素を評価して,以前に説明したようにパスを変換することにより進められます。

上記の 3 つのケースでは,予想可能な,期待どおりの結果が得られます。

1 番目の要素が,最上位の論理名と最上位でない論理名が混在した検索リストの場合,以前の説明のとおりにパスを変換すると,古いバージョン (7.3-1 よりも前) の OpenVMS とは異なる動作になることがあります。

  • OpenVMS Version 7.3-1 より前の場合,論理名の内容とは関係なく, decc$to_vms関数はコロン (:) だけを付加していました。最上位の論理名と最上位でない論理名が混在した検索リストの場合,期待どおりの結果が得られます。

  • OpenVMS Version 7.3-1 およびそれ以降では,混在している検索リストの 1 番目の要素が最上位の論理名の場合, decc$to_vmsが論理名に ":[000000]" を付加します。その結果,OpenVMS Version 7.3-1 より前のリリースとは,異なる動作になります。

DECC$NO_ROOTED_SEARCH_LISTS は, decc$to_vms関数が検索リスト論理名を解決する方法を制御します。また,OpenVMS の動作を V7.3-1 より前の状態に戻すこともできます。

DECC$NO_ROOTED_SEARCH_LISTS を有効にすると,次のようになります。

  • 論理名がファイル指定内で検出され,検索リストだった場合, OpenVMS ファイル指定を作成するときに,コロン (:) が付加されます。

  • 論理名が検索リストでない場合,動作は, DECC$NO_ROOTED_SEARCH_LISTS が無効の場合と同じです。

この機能論理名を有効にすると,検索リスト論理名の動作が,7.3-1 以前の状態になります。

DECC$NO_ROOTED_SEARCH_LISTS を無効にすると,次のようになります。

  • ファイル指定内で論理名が検出され,最上位の論理名 (つまり,1 番目の要素が最上位論理名である検索リスト) だった場合, OpenVMS ファイル指定の作成時に,":[000000]" が付加されます。

  • 最上位でない論理名の場合 (つまり,1 番目の要素が最上位でない論理名である検索リストの場合) は,コロン (:) だけが追加されます。

この機能論理名を無効にすると, OpenVMS Version 7.3-1 およびそれ以降の動作になります。

DECC$PIPE_BUFFER_SIZE

パイプ書き込み操作の場合, 512 バイトというシステムのデフォルト・バッファ・サイズでは, 512 バイトより長いメッセージを取り扱うときに,性能が低下し,余分なライン・フィードが生成される可能性があります。

DECC$PIPE_BUFFER_SIZE を指定すると, pipepopenなどのパイプ関数に対して,大きなバッファ・サイズを使用できます。 512〜65535 バイトまでの値を指定できます。

DECC$PIPE_BUFFER_SIZE を指定しないと,デフォルト・バッファ・サイズである 512 が使用されます。

デフォルト値: 512

最小値: 512

最大値: 65024

DECC$PIPE_BUFFER_QUOTA

OpenVMS Version 7.3-2 では,パイプのメールボックスのバッファ・クォータを指定する, int型の第 4 引数 (オプション) が, pipe関数に追加されました。以前のバージョンの OpenVMS では,バッファ・クォータはバッファ・サイズと同じでした。

DECC$PIPE_BUFFER_QUOTA を使用すると,この関数のオプションの第 4 引数を省略した場合に, pipe関数が使用するバッファ・クォータを指定できます。

pipeのオプションの第 4 引数を省略し, DECC$PIPE_BUFFER_QUOTA も定義していない場合,バッファ・クォータは,デフォルトで,以前と同じようにバッファ・サイズになります。

デフォルト値: 512

最小値: 512

最大値: 2147483647

DECC$POPEN_NO_CRLF_REC_ATTR

DECC$POPEN_NO_CRLF_REC_ATTR を無効に設定すると, popen関数を使用してオープンしたパイプのレコード属性には,CR/LF キャリッジ制御 (fab$b_rat |= FAB$M_CR) が設定されます。これがデフォルトの動作です。

DECC$POPEN_NO_CRLF_REC_ATTR を有効に設定すると, CR/LF キャリッジ制御がパイプ・レコードに追加されません。これは,UNIX の動作と互換性がありますが,この機能を有効にすると,キャリッジ・リターン文字に依存している getsのようなほかの関数で望ましくない動作になる可能性があります。

DECC$POSIX_COMPLIANT_PATHNAMES

DECC$POSIX_COMPLIANT_PATHNAMES を有効に設定すると,アプリケーションから C RTL 関数に渡すパス名を POSIX 準拠のパス名にすることができます。

DECC$POSIX_COMPLIANT_PATHNAMES は特に指定しない限り無効になっていて,通常の C RTL 動作が優先されます。この無効になる動作の中には UNIX 仕様のパス名を解釈する方法も含まれていて, POSIX 準拠のパス名処理とは無関係な,異なる規則が使用されます。

DECC$POSIX_COMPLIANT_PATHNAMES を有効にするには,この機能論理名の値として,次のいずれかの値を設定します。

  1 パス名をすべて,POSIX のスタイルで表す。
  2 " : " で終わっているかまたは任意のかっこ " []<> " を含んでいて,しかも SYS$FILESCAN サービスで解析可能なパス名は,そのすべてを OpenVMS のスタイルで表し,それ以外のパス名は,POSIX のスタイルで表す。
  3 " / " を含むパス名と,パス名 " . " および " .. " は POSIX のスタイルで表し,それ以外のパス名は,OpenVMS のスタイルで表す。
  4 パス名をすべて,OpenVMS のスタイルで表す。

詳細は, 第 12.3.1 項 を参照してください。

DECC$POSIX_SEEK_STREAM_FILE

DECC$POSIX_SEEK_STREAM_FILE を有効に設定すると, STREAM ファイルでファイルの終端 (EOF) を超えた位置設定を行った場合,次の書き込みまでファイルへの書き込みが行われません。書き込みが現在のファイルの終端を超える場合,古いファイルの終端を超えた位置から書き込みの先頭までの位置に 0 が埋め込まれます。

DECC$POSIX_SEEK_STREAM_FILE を無効に設定すると,ファイルの終端を超える位置設定を行った場合,現在のファイルの終端から新しい位置までの間に 0 がただちに書き込まれます。

DECC$POSIX_STYLE_UID

DECC$POSIX_STYLE_UID が有効の場合,32 ビットの UID と GID は, POSIX 形式の識別子として解釈されます。

この論理名が無効の場合,UID と GID はプロセスの UIC から得られます。

この機能は, POSIX 形式の UID と GID をサポートしている OpenVMS システムでのみ利用できます。

DECC$PRINTF_USES_VAX_ROUND

DECC$PRINTF_USES_VAX_ROUND を有効すると, printfの F および E 形式の指定子は,IEEE 浮動小数点でのプログラムのコンパイルに VAX の切り上げ切捨て規則を使用します。

DECC$READDIR_DROPDOTNOTYPE

DECC$READDIR_DROPDOTNOTYPE を有効に設定すると, readdirは UNIX 形式でファイル名を報告するときに,ファイル名にピリオド (.) が含まれている場合,ファイル・タイプのないファイルに対して末尾のピリオドだけを報告します。

この論理名を無効に設定すると,ファイル・タイプのないすべてのファイル名の末尾にピリオドが付加されて報告されます。

DECC$READDIR_KEEPDOTDIR

readdirから UNIX 形式のファイルを報告する場合,デフォルト動作では,ファイル・タイプを付けずにディレクトリだけが報告されます。

DECC$READDIR_KEEPDOTDIR を有効に設定すると,ディレクトリは UNIX 形式でファイル・タイプ ".DIR" を付けて報告されます。

DECC$RENAME_NO_INHERIT

DECC$RENAME_NO_INHERIT は, rename関数で,より UNIX に準拠した動作を提供します。 DECC$RENAME_NO_INHERIT が有効な場合は,次のような動作を強要します。

  • 古い引数がファイルのパス名を指す場合,新しい引数がディレクトリのパス名を指すことはありません。

  • 新しい引数で既存のディレクトリを指定することはできません。

  • 古い引数がディレクトリのパス名を指す場合,新しい引数がファイルのパス名を指すことはありません。

  • ファイルの新しい名前は古い名前から何も継承しません。新しい名前は完全に指定する必要があります。次に例を示します。
    "A.A" の名前を "B" に変更すると,"B" になります。

この論理名が無効の場合,OpenVMS で期待されている動作になります。例を次に示します。

"A.A" の名前を "B" に変更すると,"B.A" になります。

DECC$RENAME_ALLOW_DIR

DECC$RENAME_ALLOW_DIR を有効にすると, rename関数の動作が以前の OpenVMS の状態に戻ります。以前の動作では,あいまいなファイル指定が第 2 引数で論理名として渡された場合,ディレクトリ指定へ変換されます。あいまい性は,論理名が UNIX ファイル指定と OpenVMS ファイル指定のどちらかという点にあります。

例を次に示します。

rename("file.ext", "logical_name") /* where logical_name = dev:[dir.subdir] */ 
                                   /* and :[dir.subdir] exists.             */ 

次のような結果になります。

dev:[dir.subdir]file.ext 

この例では,ファイル名の変更により,あるディレクトリから別のディレクトリへファイルが移動されます。この動作は,V7.3-1 より前の OpenVMS の古い動作と同じです。またこの例では, dev:[dir.subdir]が存在しない場合, renameがエラーを返します。

DECC$RENAME_ALLOW_DIR を無効にすると, renamelogical_name 引数の変換が,より UNIX に準拠したものになります。

例を次に示します。

rename("file.ext", "logical_name")   /* where logical_name = dev:[dir.subdir] */ 

次のような結果になります。

dev:[dir]subdir.ext 

この例では,logical_name 引数の subdir部分を新しいファイル名として使用して,ファイル名が変更されます。これは,UNIX システム上ではファイルからディレクトリへの名前変更 (rename) はできないためです。このため renameは内部的に "logical_name"をファイル名に変換し, to a file name, dev:[dir]subdirが最も妥当な変換結果となります。

この新しい機能には,名前をファイルに変更するのではなくディレクトリに変更するという副作用があります。次に例を示します。

rename ( "file1.ext", "dir2" )      /* dir2 is not a logical */ 

DECC$RENAME_ALLOW_DIR が無効な場合,この例では,サブディレクトリ [.dir2]が存在するかどうかにかかわらず dir2.extという結果になります。

DECC$RENAME_ALLOW_DIR が有効な場合, [.dir2]が存在しなければ dir2.extという結果になります。サブディレクトリ [.dir2]が存在する場合は, [.dir2]file1.extという結果になります。

  注意
DECC$RENAME_NO_INHERIT が有効の場合は,UNIX 準拠の動作が行われます。このため,DECC$RENAME_ALLOW_DIR は無視され,ファイルからディレクトリへの名前変更 (rename) は許されません。



DECC$SELECT_IGNORES_INVALID_FD

DECC$SELECT_IGNORES_INVALID_FD を有効に設定すると,記述子セットのいずれかに不正なファイル記述子が指定されている場合, selectは異常終了し, errnoは EBADF に設定されます。

DECC$SELECT_IGNORES_INVALID_FD を無効に設定すると, selectは不正なファイル記述子を無視します。

DECC$STDIO_CTX_EOL

DECC$STDIO_CTX_EOL を有効に設定すると,ストリーム・アクセスのための stdoutおよび stderrへの書き込みは,区切り文字が確認されるか,バッファが満杯になるまで実行されません。

DECC$STDIO_CTX_EOL を無効に設定すると, fwriteを実行するたびに個別に書き込みが実行され,メールボックスとレコード・ファイルの場合,個別のレコードが作成されます。

DECC$STREAM_PIPE

DECC$STREAM_PIPE を有効に設定すると,C RTL の pipe関数は, UNIX との互換性が高いストリーム入出力を使用します。

DECC$STREAM_PIPE を無効に設定すると, pipeは従来の OpenVMS のレコード入出力を使用します。これがデフォルトの動作です。

DECC$STRTOL_ERANGE

DECC$STRTOL_ERANGE を有効に設定すると, ERANGE エラーに対する strtolの動作は,文字列内の残りのすべての桁を使用するように修正されます。

DECC$STRTOL_ERANGE を無効に設定すると,問題が発生した桁にポインタを保持するというこれまでの動作が有効になります。

DECC$THREAD_DATA_AST_SAFE

C RTL には,AST のために割り振られるデータ用とは別に,非 AST レベルでスレッドによって割り振られるスレッド固有のデータのための記憶域を割り振るモードがあります。このモードでは,スレッド固有のデータにアクセスするたびに, LIB$AST_IN_PROG を呼び出す必要があり, C RTL でスレッド固有のデータにアクセスする場合,大きなオーバヘッドが発生する可能性があります。

代替モードでは,スレッド固有のデータは,別の関数がロックしている場合にだけ保護されます。このモードでは,C RTL の内部で使用中のデータは保護されますが, AST がデータを変更するのを呼び出し元で保護することはできません。

この 2 番目のモードは, strtokecvtfcvt関数の C RTL デフォルトになりました。

DECC$THREAD_DATA_AST_SAFE を有効に設定すると,従来の AST セーフ・モードを選択できます。

DECC$TZ_CACHE_SIZE

DECC$TZ_CACHE_SIZE は,メモリに保持できるタイム・ゾーンの数を指定します。

デフォルト値: 2

最大値: 2147483647

DECC$UMASK

DECC$UMASK は,アクセス許可マスク umaskのデフォルト値を指定します。デフォルト設定では,親の C プログラムは,プロセスの RMS デフォルト・アクセス許可から umaskを設定します。子プロセスは umaskの値として,親の値を継承します。

値を 8 進数として入力するには,先頭に 0 を追加します。 0 を追加しないと,10 進数として変換されます。次の例を参照してください。

$ DEFINE DECC$UMASK 026 

最大値: 0777

DECC$UNIX_LEVEL

DECC$UNIX_LEVEL 論理名を使用すると,複数の C RTL 機能論理名を一度に操作できます。設定した値は蓄積効果があり,値が大きいほど影響を受けるグループが多くなります。たとえば値を 20 に設定すると, 20,10,および 1 の DECC$UNIX_LEVEL に対応するすべての機能論理名が有効になります。

UNIX 風の動作に影響する主な論理名は,次のグループに分類できます。

1    全般的な補正
10   拡張
20   UNIX 形式のファイル名
30   UNIX 形式のファイル属性
90   完全な UNIX 動作 - OpenVMS に対する配慮なし

BASH や GNV などの UNIX 風のプログラムに対しては,レベル 30 が適切です。

DECC$UNIX_LEVEL 値と,影響を受ける機能論理名のグループの対応は,次のとおりです。

General Corrections          (DECC$UNIX_LEVEL 1) 
 
   DECC$FIXED_LENGTH_SEEK_TO_EOF   1 
   DECC$POSIX_SEEK_STREAM_FILE     1 
   DECC$SELECT_IGNORES_INVALID_FD  1 
   DECC$STRTOL_ERANGE              1 
   DECC$VALIDATE_SIGNAL_IN_KILL    1 
 
General Enhancements        (DECC$UNIX_LEVEL 10) 
 
   DECC$ARGV_PARSE_STYLE           1 
   DECC$EFS_CASE_PRESERVE          1 
   DECC$STDIO_CTX_EOL              1 
   DECC$PIPE_BUFFER_SIZE           4096 
   DECC$USE_RAB64                  1 
 
UNIX style file names       (DECC$UNIX_LEVEL 20) 
 
   DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION 1 
   DECC$EFS_CHARSET                1 
   DECC$FILENAME_UNIX_NO_VERSION   1 
   DECC$FILENAME_UNIX_REPORT       1 
   DECC$READDIR_DROPDOTNOTYPE      1 
   DECC$RENAME_NO_INHERIT          1 
 
UNIX like file attributes     (DECC$UNIX_LEVEL 30) 
 
   DECC$EFS_FILE_TIMESTAMPS        1 
   DECC$EXEC_FILEATTR_INHERITANCE  1 
   DECC$FILE_OWNER_UNIX            1 
   DECC$FILE_PERMISSION_UNIX       1 
   DECC$FILE_SHARING               1 
 
UNIX compliant behavior       (DECC$UNIX_LEVEL 90) 
 
   DECC$FILENAME_UNIX_ONLY         1 
   DECC$POSIX_STYLE_UID            1 
   DECC$USE_JPI$_CREATOR           1 
   DECC$DETACHED_CHILD_PROCESS     1 

  注意

  • 個々の機能論理名の論理名を定義すると, DECC$UNIX_LEVEL で指定されたその機能のデフォルト値より優先されます。

  • C RTL の将来のリビジョンでは, DECC$UNIX_LEVEL に新しい機能論理名が追加される可能性があります。 UNIX レベルを指定するアプリケーションに対しては,デフォルトでこれらの新しい機能論理名が有効になります。



DECC$UNIX_PATH_BEFORE_LOGNAME

DECC$UNIX_PATH_BEFORE_LOGNAME を有効に設定すると,先頭がスラッシュ (/) でない UNIX ファイル名を変換するときに,この名前は現在のディレクトリのファイルまたはディレクトリに対応付けられます。このようなファイルやディレクトリが見つからず,名前が OpenVMS ファイル名で論理名として有効な場合は,論理名変換が実行されます。論理名が検索されて変換されると,ファイル名の一部として使用されます。

DECC$UNIX_PATH_BEFORE_LOGNAME を有効に設定すると, DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION の設定は無効になります。

DECC$USE_JPI$_CREATOR

DECC$USE_JPI$_CREATOR が有効の場合, JPI$_OWNER の代わりに JPI$_CREATOR 項目を使用して $GETJPI を呼び出し, getppidの親プロセス ID が決定されます。

この機能は, POSIX 形式のセッション識別子をサポートしているシステムでのみ利用できます。

DECC$USE_RAB64

DECC$USE_RAB64 を有効に設定すると,オープン関数は従来の RAB 構造体ではなく, RAB64 構造体を割り振ります。

これは,64 ビット・メモリ内のファイル・バッファに対する潜在的なサポート機能を提供します。

DECC$VALIDATE_SIGNAL_IN_KILL

DECC$VALIDATE_SIGNAL_IN_KILL を有効に設定すると, 0〜_SIG_MAX の範囲内であっても, C RTL でサポートされないシグナル値はエラーを生成し, errnoは EINVAL に設定されます。この結果, raiseと同じ動作が実行されます。

この論理名を無効に設定すると,シグナルのチェックは,シグナル値が 0〜_SIG_MAX の範囲内であるかどうかというチェックに制限されます。 sys$sigprcが異常終了すると, errnosys$sigprcの終了状態をもとに設定されます。

DECC$V62_RECORD_GENERATION

OpenVMS Version 6.2 以降では,異なる規則を使用してレコード・ファイルを出力できるようになりました。


目次 索引

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