7.1.2 SPPの例(メイン関数)
SPPのメイン関数のコーディング例を次に示します。
10 /* 20 *SPP01 メイン関数 30 */ 40 #include <stdio.h> 50 #include <dcrpc.h> 60 #include <dcdam.h> 70 #define DAMFILE "damfile0" 80 90 int damfd; /* damfile file-id */ 100 110 main() 120 { 130 /* 140 *リターン値を格納する領域の定義 150 */ 160 int rc; 170 /* 180 *RPC-OPEN(UAPの開始) 190 */ 200 rc = dc_rpc_open(DCNOFLAGS); 210 if(rc != DC_OK) { 220 printf("SPP01:dc_rpc_openに失敗しました。CODE = %d \n",rc); 230 goto PROG_END; 240 } 250 /* 260 *DAM-OPEN(論理ファイルのオープン) 270 */ 280 rc = dc_dam_open(DAMFILE,DCDAM_BLOCK_EXCLUSIVE); 290 if(rc < DC_OK) { 300 printf("SVR01:dc_dam_openに失敗しました。CODE = %d \n",rc); 310 goto DAM_END; 320 } 330 damfd = rc; 340 /* 350 *RPC-MAINLOOP(SPPのサービス開始) 360 */ 370 printf("SPP01:mainloopに入ります。\n"); 380 rc = dc_rpc_mainloop(DCNOFLAGS); 390 if(rc != DC_OK) { 400 printf("SPP01:dc_rpc_mainloop \ 410 に失敗しました。CODE = %d \n",rc); 420 } 430 /* 440 *DAM-CLOSE(論理ファイルのクローズ) 450 */ 460 DAM_END: 470 rc = dc_dam_close(damfd,DCNOFLAGS); 480 if(rc != DC_OK) { 490 printf("SVR01:dc_dam_closeに失敗しました。CODE = %d\n",rc); 500 } 510 /* 520 *RPC-CLOSE(UAPの終了) 530 */ 540 PROG_END: 550 dc_rpc_close(DCNOFLAGS); 560 printf("SPP01:SPPのサービス処理を終了します。\n"); 570 exit(0); 580 }