Netcompo アプリケーション会話サービス 2.1 LU0会話サービス編 - Solaris -
目次 索引 前ページ次ページ

上へ第4章 インタフェース
上へ4.3 インタフェース詳細

4.3.12 lu0termマクロ命令記述形式

  #include <signal.h> 

  void lu0term()

説明

本マクロ命令は、アプリケーションプログラムの実行ができなくなるようなシグナル割込みを受け付けた場合に出口関数内で呼び出されるように設定してください。本マクロ命令が発行されると、LU0会話サービスは、発行されたプロセスで現在確立中のすべてのセションの解放とlu0getbマクロ命令により獲得した送受信バッファを解放し、アプリケーションプログラムの登録を抹消します。

signalシステムコールにより登録を行う場合は、以下のように行ってください。

なお、下記signalは一例であり、下記以外についても必要に応じて登録してください。

  signal(SIGTERM,func1); /* ソフトウェア終了シグナル  */
  signal(SIGBUS, func1); /* バスエラー*/
  signal(SIGQUIT,func1); /* 中止  */
  signal(SIGHUP, func1); /* ハングアップ  */
  signal(SIGINT, func1); /* 割込み*/
  signal(SIGSEGV,func1); /* セグメントエラー  */

func1: 出口関数として登録し、アプリケーションプログラムは lu0termマクロ命令を発行するサブルーチンを作成してください。

func1()
{
lu0term(); /* セションの一括解放 */
exit(0);
}

image

アプリケーションプログラムが、signalを登録しなかった場合、signal割込みが発生した時にアプリケーションプログラムが終了しても回線状態がノーマル状態のままとなる可能性があります(その場合、LU0会話サービスの停止/起動をしないと、再度通信ができなくなります)。

signal割込みが発生し、アプリケーションプログラムが後処理をせずに終了した場合、メッセージキュー等がシステム内に残ってしまいます。

signalを登録した場合、signal割込みが発生してもcoreダンプが生成されないためアプリケーションプログラムのデバッグ等で不都合が生じる場合が考えられます。アプリケーションプログラムのデバッグ等で、signal割込み時に、その原因をcoreダンプによって調査する場合、signalの登録を行わないでください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2002