C 언어: 폴더에서 필요한 json 파일을 추출하고 내용을 읽습니다
2781 단어 바퀴를 만들다
#define JSON_DIR "/home/zozo/test/"
void read_json_file()
{
FILE *fp = NULL;
cJSON *json;
char *out;
char *buf;
char filterfile_str[] = "jsonfile";
char json_str[] = "json";
char *namep = NULL, *typep = NULL; // namep: typep:
DIR *dp;
struct dirent *filename;
char file_path[200] = {0};
dp = opendir(JSON_DIR);
if (!dp)
{
fprintf(stderr, "open directory error
");
return;
}
while (filename = readdir(dp))
{
// jsonfile json
namep = strstr(filename->d_name, filterfile_str);
if (namep == NULL)
{
continue;
}
typep = strstr(filename->d_name, json_str);
if (typep == NULL) // json
{
namep = NULL;
continue;
}
if (namep == filename->d_name) // jsonfile
{
printf("filename:%-10s\td_info:%ld\t",
filename->d_name, filename->d_ino); //
strcpy(file_path, JSON_DIR);
strcat(file_path, filename->d_name);
printf("file_path:%s
", file_path);
if (NULL != (fp = fopen(file_path, "rb"))) //
{
fseek(fp, 0, SEEK_END);
long len = ftell(fp); //
fseek(fp, 0, SEEK_SET);
if (len < 0)
{
printf("invalid path
");
}
// , 1 '\0'
buf = (char *)malloc(len + 1);
if (buf == NULL)
{
printf("No enough memory.");
exit(0);
}
// buf
int nread = fread(buf, len, 1, fp);
if (!nread)
{
printf("Failed to read the config file.");
}
//
fclose(fp);
//
buf[len] = '\0'; // end of string*/
printf("len:%d
", len);
json = cJSON_Parse(buf); // json
if (json == NULL)
{
free(buf);
printf("Failed to parse the json file
");
continue;
}
free(buf);
out = cJSON_Print(json);
printf("read json:%s
", out); // json
//
}
}
}
closedir(dp);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
스스로 json 해상도를 실현하고 코드를 제공합니다여가 시간에 만든 json 해석기는 json 해석, 서열화, 반서열화 기능을 제공합니다. 기본적인 것일 뿐입니다. 아직 많은 버그가 눈치채지 못했을 수도 있지만 장난감으로서 여러분에게 참고할 수 있습니다. json ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.