例子: 读取linux的内存信息到变量中, 配合 char*[] 做要读取的名称, int*[] 做值保存目标点, 配合strstr字符串中寻找字符串,再sscanf格式化到目标变量中.
char *pmeminfo = (char *) malloc(2048);
char *next = NULL;
int MemTotal = 0;
int Cached = 0;
int MemFree = 0;
int Buffers = 0;
int SwapTotal = 0;
int SwapCached = 0;
int SwapFree = 0;
char *names[] = { "MemTotal:", "\nCached:", "MemFree:", "Buffers:", "SwapTotal:", "SwapCached:", "SwapFree:" };
int *values[] = { &MemTotal, &Cached, &MemFree, &Buffers, &SwapTotal, &SwapCached, &SwapFree };
char name[20];
int i = 0;
if (pmeminfo) {
memset(pmeminfo, 0, 2048);
tools_read_file_tobuff("/proc/meminfo", pmeminfo, 2048);
for (i = 0; i < sizeof(names) / sizeof(names[0]); i++) {
next = strstr(pmeminfo, names[i]);
if (next) {
next += strlen(names[i]);
sscanf(next, "%d", values[i]);
}
}
free(pmeminfo);
}