日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
DECC$FIXED_LENGTH_SEEK_TO_EOF を無効に設定すると,固定長レコードのファイルに対して SEEK_EOF を設定して呼び出した場合,
lseek,
fseek,
fseekoはファイル内の最後のレコードの末尾を基準にして位置を設定します。
デフォルト値: 0
最大値: 2147483647
DECC$MAILBOX_CTX_STM を有効に設定すると,レコード属性 FAB$M_CR は設定されません。
上記の 3 つのケースでは,予想可能な,期待どおりの結果が得られます。
1 番目の要素が,最上位の論理名と最上位でない論理名が混在した検索リストの場合,以前の説明のとおりにパスを変換すると,古いバージョン (7.3-1 よりも前) の OpenVMS とは異なる動作になることがあります。
DECC$NO_ROOTED_SEARCH_LISTS は, decc$to_vms関数が検索リスト論理名を解決する方法を制御します。また,OpenVMS の動作を V7.3-1 より前の状態に戻すこともできます。
DECC$NO_ROOTED_SEARCH_LISTS を有効にすると,次のようになります。
この機能論理名を有効にすると,検索リスト論理名の動作が,7.3-1 以前の状態になります。
DECC$NO_ROOTED_SEARCH_LISTS を無効にすると,次のようになります。
この機能論理名を無効にすると, OpenVMS Version 7.3-1 およびそれ以降の動作になります。
DECC$PIPE_BUFFER_SIZE を指定すると, pipeや popenなどのパイプ関数に対して,大きなバッファ・サイズを使用できます。 512〜65535 バイトまでの値を指定できます。
DECC$PIPE_BUFFER_SIZE を指定しないと,デフォルト・バッファ・サイズである 512 が使用されます。
デフォルト値: 512
最小値: 512
最大値: 65024
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 を有効に設定すると, CR/LF キャリッジ制御がパイプ・レコードに追加されません。これは,UNIX の動作と互換性がありますが,この機能を有効にすると,キャリッジ・リターン文字に依存している
getsのようなほかの関数で望ましくない動作になる可能性があります。
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 を無効に設定すると,ファイルの終端を超える位置設定を行った場合,現在のファイルの終端から新しい位置までの間に 0 がただちに書き込まれます。
この論理名が無効の場合,UID と GID はプロセスの UIC から得られます。
この機能は, POSIX 形式の UID と GID をサポートしている OpenVMS システムでのみ利用できます。
この論理名を無効に設定すると,ファイル・タイプのないすべてのファイル名の末尾にピリオドが付加されて報告されます。
DECC$READDIR_KEEPDOTDIR を有効に設定すると,ディレクトリは UNIX 形式でファイル・タイプ ".DIR" を付けて報告されます。
この論理名が無効の場合,OpenVMS で期待されている動作になります。例を次に示します。
"A.A" の名前を "B" に変更すると,"B.A" になります。
例を次に示します。
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 を無効にすると, renameの logical_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 を無効に設定すると,
selectは不正なファイル記述子を無視します。
DECC$STDIO_CTX_EOL を無効に設定すると,
fwriteを実行するたびに個別に書き込みが実行され,メールボックスとレコード・ファイルの場合,個別のレコードが作成されます。
DECC$STREAM_PIPE を無効に設定すると,
pipeは従来の OpenVMS のレコード入出力を使用します。これがデフォルトの動作です。
DECC$STRTOL_ERANGE を無効に設定すると,問題が発生した桁にポインタを保持するというこれまでの動作が有効になります。
代替モードでは,スレッド固有のデータは,別の関数がロックしている場合にだけ保護されます。このモードでは,C RTL の内部で使用中のデータは保護されますが, AST がデータを変更するのを呼び出し元で保護することはできません。
この 2 番目のモードは, strtok, ecvt, fcvt関数の C RTL デフォルトになりました。
DECC$THREAD_DATA_AST_SAFE を有効に設定すると,従来の AST セーフ・モードを選択できます。
デフォルト値: 2
最大値: 2147483647
値を 8 進数として入力するには,先頭に 0 を追加します。 0 を追加しないと,10 進数として変換されます。次の例を参照してください。
$ DEFINE DECC$UMASK 026 |
最大値: 0777
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_PATH_BEFORE_LOGNAME を有効に設定すると, DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION の設定は無効になります。
この機能は, POSIX 形式のセッション識別子をサポートしているシステムでのみ利用できます。
これは,64 ビット・メモリ内のファイル・バッファに対する潜在的なサポート機能を提供します。
この論理名を無効に設定すると,シグナルのチェックは,シグナル値が 0〜_SIG_MAX の範囲内であるかどうかというチェックに制限されます。
sys$sigprcが異常終了すると,
errnoは
sys$sigprcの終了状態をもとに設定されます。
目次 | 索引 |
|