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 }