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