日本-日本語
日本HPホーム 製品 & サービス サポート & ドライバー ソリューション ご購入方法
≫  お問い合わせ

製品とサービス >  ソフトウェアとOS >  OpenVMS >  マニュアル

OpenVMS マニュアル


HP OpenVMS
DCL ディクショナリ


目次 索引



Ctrl/Y と Ctrl/T の機能を許可または禁止します。Ctrl/Y を押したときには,コマンドに割り込みをかけ,制御を DCL に戻します。Ctrl/T を押したときには,コマンドに一時割り込みをかけ,プロセスの統計情報を表示します。

SET CONTROL=T コマンドは, SET TERMINAL/BROADCAST コマンドでブロード・キャスト・メッセージがターミナルに表示されるように設定されていなければなりません。


形式

SET CONTROL [=(T,Y)]

SET NOCONTROL [=(T,Y)]


パラメータ



(T,Y)

T (Ctrl/T) または Y (Ctrl/Y) の制御機能が,SET CONTROL コマンドによって許可または禁止されることを指定します。いずれか 1 つだけ指定する場合は,括弧は省略できます。省略時の設定は Y です。

説明

Ctrl/Y 機能は,現在の処理からの一般的な脱出機能です。Ctrl/Y 機能は一般に,現在のコマンド,コマンド・プロシージャ,またはプログラム・イメージを中断するために,会話型のターミナル・セッション中で使用することができます。

SET NOCONTROL=Y コマンドは,特別のアプリケーション・プログラムに使用することができます。SET NOCONTROL=Y コマンドが,ログイン時に特定ユーザのためにシステム特有のコマンド・プロシージャの中で実行される場合,そのユーザは,ターミナルを制御するアプリケーション・プログラムとのみ通信することができます。

SET NOCONTROL=Y が有効な場合に Ctrl/Y を押すと,INTERRUPT メッセージは表示されますが,割り込みは起こりません。 1

SET NOCONTROL=Y は,さらに Ctrl/C 機能のための特別の処理ルーチンを持っていない,すべてのコマンドおよびプログラムに対して, Ctrl/C の取消機能を禁止します。

Ctrl/T 機能は,現在のプロセスに関する統計情報を一行表示します。会話型のターミナル・セッション中に Ctrl/T を押した場合,統計情報を表示するために,現在のコマンド,コマンド・プロシージャ,またはイメージを瞬間的に中断します。統計情報はノード名およびユーザ名,現在の時間,現在のプロセス,CPU の使用状態,ページ・フォルトの数,入出力処理状態のレベル,およびメモリの使用状態を含んでいます。次に例を示します。

BOSTON::SMITH  16:21:04 EDT       CPU=00:00:03.33 PF=778 IO=296 MEM=277 

SET NOCONTROL=T( 省略時の設定 ) が有効な場合に Ctrl/T を押しても,統計情報は表示されません。

Ctrl/T の出力のカスタマイズ

新しいシンボル DCL$CTRLT を定義すると,従来の Ctrl/T の出力を DCL$CTRLT に定義したテキストで補足することができます。このテクニックは,ユーザ・アプリケーションで進捗を示したり,デバッグの目的で使用することができます。


#1
$ SET NOCONTROL=Y

この例では,Ctrl/Y の機能と,Ctrl/C のほとんどの機能を禁止します。

#2
$ SET CONTROL=T

この例では,Ctrl/T の機能を許可します。

#3
$ SET NOCONTROL=(T,Y)

この例では,Ctrl/T と Ctrl/Y の両方の機能を禁止します。

#4
$ []Ctrl/T
NODE22::SMITH 16:21:04 (DCL) CPU=00:03:29.39 PF=14802 IO=18652 MEM=68
$ SET NOCONTROL=T
$ []Ctrl/T
 

Ctrl/T キーを押した時に表示されるメッセージを示しています。 SET NOCONTROL=T コマンドは,この機能を禁止しています。したがって,次に Ctrl/T キーを押した時には何も表示されません。

#5
$ TYPE CTRLT_LOOP.COM
$ inner=0 
$ outer=0 
$ loop: 
$ loop1: 
$ if inner .gt.  20000 then goto end_loop1 
$ inner=inner+1 
$ dcl$ctrlt=F$FAO("Inner loop count is !SL Outer loop count is !SL" ,inner,outer) 
$ goto loop1 
$ end_loop1: 
$ inner=0 
$ outer=outer+1 
$ goto loop 
$ @CTRLT_LOOP 
            
<<Press Ctrl/T>> 
NODE1::JSMITH 10:46:37 (DCL) CPU=00:03:42.68 PF=13453 IO=6743 MEM=187 
Inner loop count is 12306 
Outer loop count is 0 
NODE1::JSMITH 10:46:43 (DCL) CPU=00:03:49.19 PF=13455 IO=6744 MEM=187 
Inner loop count is 19200 
Outer loop count is 2 
. 
. 
. 
<<Press Ctrl/C>> <<--- To exit the loop. 
$ SET NOCONTROL=T 
$ @CTRLT_LOOP 
<<Press Ctrl/T>> 
<<Nothing is displayed as CTRL/T is disabled.>> 
<<Press Ctrl/C>> <<--- To exit the loop.
 
 

この例では,コマンド・プロシージャ内で DCL$CTRLT を使用する例を示しています。このコマンド・プロシージャはループで実行しており,実行したループの反復回数を示すシンボル DCL$CTRLT をアップデートします。

脚注

1 DCL は,ターミナル・ドライバに対する待ち状態の Ctrl/Y 非同期システム・トラップ (AST) を維持します。これは,SET HOST コマンドを使用する場合のキャプティブ・コマンド・プロシージャに影響します。詳細は,SET HOST コマンドの説明を参照してください。


目次 索引

プライバシー 本サイト利用時の合意事項 ウェブマスターに連絡