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

上へ付録A アプリケーションプログラム例

A.3 受信キャンセルの例

/*====================================================================* 
 *     アプリケーションプログラム例 3  (受信キャンセル)            *
 *                                                                    *
 *         (1)  main     : 受信キャンセル メイン処理                  *
 *                                                                    *
 *====================================================================*/

#include  <sys/types.h>
#include  <stdio.h>
#include  <memory.h>
#include  <signal.h>

#include  "lu0.h"
            
/*---------------------------------------------*/
/*      エントリモジュール                     */
/*---------------------------------------------*/

void    main();                                                         

/*---------------------------------------------*/
/*      ローカル定義                           */
/*---------------------------------------------*/

#define NORMAL  0                             /* マクロ命令復帰値正常 */

/*====================================================================*
 *      function name  :  (1) main                                    *
 *      function       :  受信キャンセル                              *
 *====================================================================*/
void
main()   

{     
     struct  sigaction  act;                  /* sigaction用パラメタ  */
     struct  lu0rb      rcb;                  /* rcb               */
     struct  lu0rb     *rcbp;                 /* rcbポインタ       */

     rcbp  =  &rcb;                           /* rcbアドレス設定   */
     memset( rcbp, 0, sizeof(struct lu0rb) ); /* rcb域クリア       */

/*=============================================*/
/*   lu0open マクロ処理                 */
/*=============================================*/

     strcpy( rcbp->l_unit, "lu01" );          /* LU名設定           */
     
     if( lu0open1( rcbp )  !=  NORMAL )       /* アプリ登録           */
     {                                        /*                      */
          return;                             /* < 異常終了 >         */
     }                                        /*                      */

     rcvdfd  =  rcbp->l_pipfd;                /* 受信用パイプfd退避   */

/*=============================================*/
/*   lu0canマクロ処理                    */
/*=============================================*/
     
     lu0can( rcbp );                          /* 受信キャンセル       */

/*=============================================*/
/*   lu0closeマクロ処理                */
/*=============================================*/
     
     for( ; ; )                               /*                      */
     {                                        /*                      */
          lu0close( rcbp );                   /* アプリ登録抹消       */
                                              /*                      */
          if( rcbp->l_cplt != EINTR )         /* signal受信なら再発行 */
          {                                   /*                      */
               return;                        /* < 正常終了 >         */
          }                                   /*                      */
     }                                        /*                      */
}                                             /*                      */

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

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