ファイル情報読み込み(IPアドレス)

ファイル情報読み込み(IPアドレス)(list_22.c)
#include <stdio.h>


#define conffile "file.conf"
#define BUFFSIZE 512

/////////////////////////////////////////////////////////////////
void chop_crlf(char* buff);
/////////////////////////////////////////////////////////////////

int main()
{
    FILE* fp;
    int  i,idn=0,id[12],rflg;
    char readbuf[BUFFSIZE],tempbuf[BUFFSIZE];
    char ipadr[12][BUFFSIZE];
    char cpoint[12][BUFFSIZE];
    char seps[]=",",*token;
    
    if((fp=fopen(conffile,"r"))==NULL){
        fprintf(stderr,"format file not found\n");
        return -1;
    }
    /* 読込み開始 */
    memset(readbuf,0,sizeof(char)*BUFFSIZE);
    memset(tempbuf,0,sizeof(char)*BUFFSIZE);
    memset(ipadr,0,sizeof(char)*BUFFSIZE*12);
    memset(cpoint,0,sizeof(char)*BUFFSIZE*12);
    
    while(fgets(readbuf,BUFFSIZE,fp)){
        chop_crlf(readbuf); /* Cr+Lf の除去(気になるもので..) */
        sscanf(readbuf,"[%s]",tempbuf);
        if(strlen(tempbuf)){ /* 読込み開始 */
            sscanf(tempbuf,"%d",&id[idn]);
            /* IP/directory の読込み */
            rflg = 0;
            memset(readbuf,0,sizeof(char)*BUFFSIZE);
            memset(tempbuf,0,sizeof(char)*BUFFSIZE);
            while(fgets(readbuf,BUFFSIZE,fp) && rflg<2){
                chop_crlf(readbuf);
                sscanf(readbuf,"connect cause = %s",tempbuf);
                if(strlen(tempbuf)){
                    strcpy(ipadr[idn],tempbuf);
                    rflg ++;
                }
                memset(tempbuf,0,sizeof(char)*BUFFSIZE);
                sscanf(readbuf,"connect point = %s",tempbuf);
                if(strlen(tempbuf)){
                    strcpy(cpoint[idn],tempbuf);
                    rflg ++;
                }
            }
            idn++;
        }
        // バッファクリア
        memset(readbuf,0,sizeof(char)*BUFFSIZE);
        memset(tempbuf,0,sizeof(char)*BUFFSIZE);
    }
    fclose(fp);

    if(idn == 0){
        printf("config not found\n");
        return -1;
    }

    printf("\n読込み情報:\n\n");
    for(i=0;i<idn;i++){
        printf("**ID info[%d]:\n",id[i]);
        printf("\t IP: %s",ipadr[i]);
        printf("\tDIR: %s\n",cpoint[i]);
    }
    printf("\n");
    return 0;
}

// 改行コードの除去
void chop_crlf(char* buff)
{
    int i,bufleng = strlen(buff);
    for(i=0;i<bufleng;i++){
        if(buff[i] == '\r') buff[i] = 0;
        if(buff[i] == '\n') buff[i] = 0;
    }
}
実行結果
読み込みファイル情報:
Gami[1206]% cat file.conf
[123]
connect cause = 172.16.10.29
connect point = \\home\com

[456]
connect cause = 172.16.10.29
connect point = \\home\gami
Gami[127]%

実行:
Gami[1208]% charseek.exe

読込み情報:

**ID info[123]:
         IP: 172.16.10.29       DIR: \\home\com
**ID info[456]:
         IP: 172.16.10.29       DIR: \\home\gami

Gami[1209]%
inserted by FC2 system