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 }