C 언어 에서 설정 파일 분석 사례
1954 단어 c
int parse_config()
{
FILE *fp;
int ret = 0, count = 0, err = 0;
int id,flag;
char *type,*name;
char buffer[MAX_LINE_LEN]={0};
fp = fopen(PCBA_SUPPORT_CONFIG, "r");
if(fp == NULL) {
LOGE("mmitest open %s failed! %d IN", PCBA_SUPPORT_CONFIG, __LINE__);
return -1;
}
/* parse line by line */
ret = 0;
while(fgets(buffer, MAX_LINE_LEN, fp) != NULL) {
if('#'==buffer[0])
continue;
if((buffer[0]>='0') && (buffer[0]<='9')){
ret = parse_case_entries(buffer,&id,&flag);
if(ret != 0) {
LOGD("mmitest parse %s,buffer=%s return %d. reload",PCBA_SUPPORT_CONFIG, buffer,ret);
fclose(fp);
return -1;
}
support_result[count].id = id;
support_result[count++].support= flag;
err = 1;
}else if(!strncmp("sensor", buffer, 6)){
ret = parse_sensor_entries(buffer);
if(ret != 0) {
LOGD("mmitest parse %s,buffer=%s return %d. reload",PCBA_SUPPORT_CONFIG, buffer,ret);
fclose(fp);
return -1;
}
err = 1;
}else if(!strncmp("key", buffer, 3)){
ret = parse_key_entries(buffer);
if(ret != 0) {
LOGD("mmitest parse %s,buffer=%s return %d. reload",PCBA_SUPPORT_CONFIG, buffer,ret);
fclose(fp);
return -1;
}
err = 1;
}
if(0 == err)
LOGD("can't check line = %s", buffer);
err = 0;
}
fclose(fp);
if(count < TOTAL_NUM) {
LOGD("mmitest parse slog.conf failed");
}
return ret;
}
#define PCBA_SUPPORT_CONFIG "/system/etc/factorytest/PCBA.conf"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.