c/c++ 调用系统命令

jni接口

  • sscanf()
  • popen()
  • fgets()
        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, "%*[^ ]%*[ ]%[^ ]%*[ ]%[^ ]%*[ ]%[^ ]%*[ ]%[^ ]%*[ ]%[^\n]", 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] = '\0';

        LOGI("GetDiskInfo:: return %s", result);
        pclose(file);
        return  env->NewStringUTF(result);

原文链接: https://www.cnblogs.com/xiongyungang/p/12526604.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    c/c++ 调用系统命令

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/336261

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午10:33
下一篇 2023年3月1日 下午10:34

相关推荐