⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getswapinfo.c

📁 读取linux操作系统下swap交换分区信息源代码
💻 C
字号:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#ifdef __ia64__#define USE_EFI#endif /* __ia64__ */#include "getswapinfo.h"#define GET_SWAPIO_VMSTAT_CMD  "vmstat | sed -n 3p"//全局网络连接信息结构体SWAP_IO_Info g_swapio_info;//读取swapio的信息int getswapioInfo(void){    FILE *pFile  = NULL;    char buf[256];    char number[32];    char *pFind;    pFile = popen(GET_SWAPIO_VMSTAT_CMD , "r");    if (!pFile)    {        return -1;    }    g_swapio_info.free = 0;    g_swapio_info.buff = 0;    g_swapio_info.cache = 0;    g_swapio_info.si = 0;    g_swapio_info.so = 0;    g_swapio_info.bi = 0;    g_swapio_info.bo = 0;    while(!feof(pFile))    {               bzero(buf,sizeof(buf));        if (!(fgets(buf, sizeof(buf), pFile)))            break;          //读取值.        printf("cmd=%s \n%s\n",GET_SWAPIO_VMSTAT_CMD, buf);        int i=0;        int j=0;        char c = 0;        int index = 0;        bzero(number,sizeof(number));        while((c=buf[i++])!=0)        {                           if(c>='0' && c<='9')            {                number[j++]=c;            }            else            {                //读取完成一个数据出来啦.                if(number[0]>0)                {                                       //printf("---number[%d]=%s\n",index,number);                                        /*                    0  1    2       3      4        5       6    7     8     9    10   11 12 13 14 15 16                    r  b   swpd   free   buff     cache     si   so    bi    bo   in   cs us sy id wa st                    0  0    0    4449832 567328   2026208    0    0     0     0    0    1  2  2 96  0  0                    */                    switch(index)                        {                        case 3:                            g_swapio_info.free = atol(number);                            break;                        case 4:                            g_swapio_info.buff = atol(number);                            break;                        case 5:                            g_swapio_info.cache = atol(number);                            break;                        case 6:                            g_swapio_info.si = atol(number);                            break;                        case 7:                            g_swapio_info.so = atol(number);                            break;                        case 8:                            g_swapio_info.bi = atol(number);                            break;                        case 9:                            g_swapio_info.bo = atol(number);                            break;                        default:                            break;                        }                                       index++;//下标加一                }                               bzero(number,sizeof(number));                j=0;                            }        }    }    pclose(pFile);    printf("swapio=%ld  %ld  %ld  %ld  %ld  %ld  %ld  \n",        g_swapio_info.free,        g_swapio_info.buff,        g_swapio_info.cache,        g_swapio_info.si,        g_swapio_info.so,        g_swapio_info.bi,        g_swapio_info.bo);    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -