jni接口
FILE *file = NULL;
int offset = 0;
char line[MAX_SIZE];
char buffer[MAX_SIZE];
char result[MAX_SIZE * 2];
char size_m[MIN_SIZE];
char used[MIN_SIZE];
char avail[MIN_SIZE];
char usage[MIN_SIZE];
char mount[MIN_SIZE];
char fileSystem[MIN_SIZE];
if (NULL == (file = popen("df -h |tail -n +2", "r")))
{
LOGE("%s->%d| error %d, %s",__func__,__LINE__,errno, strerror(errno));
return env->NewStringUTF(constErrOpen);
}
memset(result, 0, sizeof(result));
result[0] = '{';
offset = 1;
for (size_t i = 0;!feof(file);i++)
{
fgets(line, MAX_SIZE, file);
sscanf(line, "%[^ ]",fileSystem);
sscanf(line, "%*[^ ]%*[ ]%[^ ]%*[ ]%[^ ]%*[ ]%[^ ]%*[ ]%[^ ]%*[ ]%[^
]", size_m, used, avail, usage, mount);
LOGI("GetDiskInfo:: line %s", line);
if(0 == strlen(line))
{
continue;
}
memset(buffer, 0, sizeof(buffer));
sprintf(buffer, ""%s size":"%s","%s used":"%s","%s avail":"%s","%s usage":"%s","%s mount":"%s",", fileSystem, size_m, fileSystem, used, fileSystem, avail, fileSystem, usage, fileSystem, mount);
LOGI("GetDiskInfo::buffer %s", buffer);
int bufferlen = strlen(buffer);
memcpy(result+offset, buffer, bufferlen);
offset += bufferlen;
}
result[offset -1] = '}';
result[offset] = ' ';
LOGI("GetDiskInfo:: return %s", result);
pclose(file);
return env->NewStringUTF(result);