HP OpenVMS Systems Documentation |
[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ]
アプリケーションでDECTERM PORTルーチンを使用すると,ローカルまたはリモートのいずれのノードでも, 漢字端末エミュレータのウィンドウを作成できます。CREATE/TERMINAL コマンドを生成して,漢字端末エミュレータのウィンドウを作成することもできますが,DECTERM PORT ルーチンを使用したほうが性能は高くなります( ユーザはセッション・マネージャの「アプリケーション」メニューから, またはDCLでCREATE/TERMINALコマンドを使用することによって, 漢字端末エミュレータを作成できます)。
例 A-1は,DECTERM PORTルーチンを使用して, リモート・システム上に漢字端末エミュレータを作成する方法を示しています。
#include descrip /* descriptor definitions */ #include ssdef /* system status codes */ #include prcdef /* stsflg bits for creating process */ main( ) { int status, stsflg; short device_length; 【1】 char device_name[50]; $DESCRIPTOR( command, "SYS$SYSTEM:LOGINOUT.EXE" ); $DESCRIPTOR( input_file, "" ); $DESCRIPTOR( output_file, "" ); /* send the message to the controller */ 【2】 status = DECwTermPort( 0, 0, 0, device_name, &device_length ); if ( status != SS$_NORMAL ) printf( "DECterm creation failed, status is %x\n", status ); else { /* create a process that is already logged in */ /* input from TWn: */ 【3】input_file.dsc$w_length = device_length; input_file.dsc$a_pointer = device_name; /* output to TWn: */ output_file.dsc$w_length = device_length; output_file.dsc$a_pointer = device_name; /* make it detached, interactive, logged in */ stsflg = PRC$M_DETACH | PRC$M_INTER | PRC$M_NOPASSWORD; /* create the process */ 【4】status = sys$creprc( 0, &command, &input_file, &output_file, 0, 0, 0, 0, 4, 0, 0, stsflg ); if ( status != SS$_NORMAL ) printf( "Could not run LOGINOUT.EXE, status is %x\n", status ); } }
DECTERM PORTルーチンは4番めの引数device_nameに,仮想端末装置の名前を返します。DECTERM PORT ルーチンは最後の引数 device_lengthに,仮想端末装置の名前の長さを書き込みます。
例 A-2はこのサンプル・プログラムをコンパイル, リンク,および実行するためのコマンド・プロシージャです。
【1】 $ cc create_decterm 【2】 $ link create_decterm, sys$input/opt sys$share:decw$xlibshr/share sys$share:decw$dwtlibshr/share sys$share:vaxcrtl/share sys$share:decw$terminalshr/share 【3】 $ set display/create/node=mynode 【4】 $ run create_decterm