📄 getswapinfo.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 + -