vector<partition_info> getDiskIO();
int main() { int i; vector<partition_info> diskio; cout << "Dev\t\tRio\t\tWio" << endl; while(1) { diskio = getDiskIO(); for (i = 0; i < diskio.size(); i++) { cout << diskio[i].name << "\t\t" << diskio[i].rio << "\t\t" << diskio[i].wio << endl; } sleep(2); } }
typedef struct _partion_info { char major[16]; char minor[16]; char blocks[16]; char name[24]; char rio[16]; char rmerge[16]; char rsect[16]; char ruse[16]; char wio[16]; char wmerge[16]; char wsect[16]; char wuse[16]; char running[16]; char use[16]; char aveq[16]; } partition_info; #define partition_format "%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s" vector<partition_info> getDiskIO() { FILE *fp; char line[512]; class Config *esmCfg; int last_time = 0; int n; int first = 0; partition_info lpartition_info; vector<partition_info> vpartition_info; if ((fp = fopen("/proc/partitions", "r")) == NULL) { perror("fopen error"); } char major[12]; first = 0; while(fgets(line, 511, fp) != NULL) { if (first == 0) { first ++; continue; } n = sscanf(line, partition_format, lpartition_info.major, lpartition_info.minor, lpartition_info.blocks, lpartition_info.name, lpartition_info.rio, lpartition_info.rmerge, lpartition_info.rsect, lpartition_info.ruse, lpartition_info.wio, lpartition_info.wmerge, lpartition_info.wsect, lpartition_info.wuse, lpartition_info.running, lpartition_info.use, lpartition_info.aveq ); // 포맷에 맞지 않을 경우 건너 뛴다. if(n < 10) { continue; } if(!isdigit(lpartition_info.name[strlen(lpartition_info.name) - 1 ])) { vpartition_info.push_back(lpartition_info); } } fclose(fp); return vpartition_info; }
Copyrights © - Joinc, All Rights Reserved. Inherited From - Yundream Rebranded By - Joonphil
설명
사용방법
코드
토론
Recent Posts
Archive Posts
Tags