日本語 OpenVMS 
 日本語 OpenVMS 
 日本語画面管理ライブラリ 利用者の手引き
  
 
  
 Create and Initialize a Subprocess ルーチンは,DCL サブプロセスを生成し,そのサブプロセスを仮想ディスプレイに対応づけます。
 
 
形式
SMG$CREATE_SUBPROCESS display-id [,AST-routine] [,AST-argument]
  
 
戻り値
  
| OpenVMS 用法  | 
cond_value | 
 
| データ型  | 
longword (unsigned) | 
 
| アクセス  | 
write only | 
 
| 受け渡し方 | 
by value | 
 
 
 
  
 
引数
 
 display-id
| OpenVMS 用法  | 
identifier | 
 
| データ型  | 
longword (unsigned) | 
 
| アクセス  | 
read only | 
 
| 受け渡し方 | 
by reference | 
 
 
 新しく生成したサブプロセスに対応づけられる,仮想ディスプレイの識別子。 display-id 
引数は,この識別子を格納した符号なしロングワードのアドレスです。
 この引数は SMG$CREATE_VIRTUAL_DISPLAY ルーチンによって与えられます。
 
  AST-routine
| OpenVMS 用法  | 
ast_procedure | 
 
| データ型  | 
procedure entry mask | 
 
| アクセス  | 
call without stack unwinding | 
 
| 受け渡し方 | 
by value | 
 
 
 現在実行中のコマンドが終了したときに呼び出される AST ルーチン(省略可能)。 
AST-routine 
引数はルーチンのプロシージャ・エントリ・マスクです。
 AST ルーチンは 5 つの引数を使用して呼び出されます。最初の引数は, display-id 引数,AST-argument 
引数, command-status 
引数の値を格納したデータ構造を示すポインタです。 AST ルーチンに対する他の 4 つの引数は R0,R1,PC,PSL です。
  
 
 
AST-routine 
引数を指定した場合には,SMG$EXECUTE_COMMAND ルーチンはそのルーチンに渡されたコマンドをバッファに登録し,各コマンドを順に実行し,各コマンドが終了すると,指定された AST ルーチンを呼び出します。 AST-routine 
引数を指定しなかった場合には,SMG$EXECUTE_COMMAND ルーチンは,指定されたコマンドが終了するのを待ち,その後,制御をユーザに戻します。
 
  AST-argument
| OpenVMS 用法  | 
user_arg | 
 
| データ型  | 
longword (unsigned) | 
 
| アクセス  | 
read only | 
 
| 受け渡し方 | 
by value | 
 
 
 AST ルーチンに対して指定する引数(省略可能)。 AST-argument 引数は,AST ルーチンに渡される値を格納した符号なしロングワードです。
  
説明
SMG$CREATE_SUBPROCESS ルーチンを使用すれば,DCL サブプロセスを生成し,このサブプロセスを仮想ディスプレイに対応づけることができます(サブプロセスは SET NOVERIFY と SET NOON の DCL コマンドを使用して初期化されます)。その後,メイン・プロセスから SMG$EXECUTE_COMMAND ルーチンを使用してサブプロセスが実行するコマンドを指定できます。
プロセス間通信はメール・ボックスを使用して実行されます。したがって,入力コマンドと出力テキストを制御できます。コマンドをバッファに登録する場合には,オプションとして AST ルーチンを使用することにより,コマンドが終了したことをメイン・プロセスに通知します。このルーチンを使用するために,ブロードキャスト・トラッピングと要求されていない入力を禁止する必要はありません。
 サブプロセスを生成する前に,日本語 SMG は,必要なメールボックスとサブプロセスを作成するための十分な資源があるかどうかを確認します。BYTLM の残存値は少なくとも 5,000 でなければならず,PRCLM の残存値は少なくとも 1 でなければなりません。
 日本語 SMG は,ユーザが SMG$DELETE_SUBPROCESS ルーチンを呼び出さずに処理を終了した場合,サブプロセスを削除する終了ハンドラを宣言します。しかし,場合によっては,これらの機能が提供する終了ハンドラが実行されないことがあります。この場合には,DCL の SHOW PROCESS/SUB コマンドと DCL の STOP コマンドを使用してサブプロセスを削除しなければなりません。
  
 
戻される状態値
 
| SS$_NORMAL
 | 
正常終了。
 | 
 
| SMG$_INSQUOCRE
 | 
サブプロセスを生成するのに必要なクォータが不足しています。
 | 
 
| SMG$_INVDIS_ID
 | 
display-id 引数に誤りがあります。
 | 
 
| SMG$_SUBALREXI
 | 
この
 display-id 
引数に対応するサブプロセスがすでに存在します(代替正常終了状態)。
 | 
 
| SS$_xxxx
 | 
$GETDVI,$GETJPI,$DCLEXH,または $CREMBX から戻された状態値。
 | 
 
| LIB$_xxxx
 | 
LIB$SPAWN,LIB$GET_EF,LIB$GET_VM から戻された状態値。
 | 
 
 
  
 
 
      |