7.2.1 SPPの例(メイン関数)
SPPのメイン関数のコーディング例を次に示します。
10 /* 20 * spp01 メイン関数 30 */ 40 #include <stdio.h> 50 #include <dcrpc.h> 60 #include <dctam.h> 70 #define TAMTABLE "tamtable30" 80 90 long tamfd ; /* tamfile file-id */ 100 110 main() 120 { 130 140 /* 150 * リターンコード格納変数の定義 160 */ 170 int rcd ; 180 /* 190 * RPC-OPEN(UAPの開始) 200 */ 210 rcd = dc_rpc_open(DCNOFLAGS) ; 220 if(rcd != DC_OK) { 230 printf("SPP01:dc_rpc_openに失敗しました。code = %d \n", rcd) ; 240 goto PROG_END ; 250 } 260 /* 270 * TAM-OPEN(TAMテーブルのオープン) 280 */ 290 rcd = dc_tam_open(TAMTABLE, DCTAM_REC_EXCLUSIVE) ; 300 if(rcd <= 0) { 310 printf("SVR01:dc_tam_openに失敗しました。code = %d \n", rcd) ; 320 goto TAM_END ; 330 } 340 tamfd = (long)rcd ; 350 /* 360 * RPC-MAINLOOP(SPPのサービス開始) 370 */ 380 rcd = dc_rpc_mainloop(DCNOFLAGS) ; 390 if(rcd != DC_OK) { 400 printf("SPP01:dc_rpc_mainloopに失敗しました。code = %d \n", rcd) ; 410 } 420 /* 430 * TAM-CLOSE(TAMテーブルのクローズ) 440 */ 450 rcd = dc_tam_close(tamfd, DCNOFLAGS) ; 460 if(rcd != DC_OK) { 470 printf("SVR01:dc_tam_closeに失敗しました。code = %d \n", rcd) ; 480 } 490 TAM_END : 500 /* 510 * RPC-CLOSE(UAPの終了) 520 */ 530 dc_rpc_close(DCNOFLAGS) ; 540 PROG_END : 550 printf("SPP01:SPPのサービス処理を終了します。\n") ; 560 exit(0) ; 570 }