2014-09-10 2 views
0

내 C 프로그램의 배열에 페이지 폴트 수를 저장하려고합니다. 나는 bash 명령을 실행하고 그것의 출력을 배열에 저장하려고한다. 여기 내 명령c 파일에서 bash 명령을 실행하고 배열에 출력을 저장하십시오.

$ cat /proc/vmstat | grep pgfault 
+0

'는 popen()'플러스'FREAD()'이다. – michaelmeyer

+0

C 프로그램에 배열을 생성하는 줄을 포함시킨 다음 루프 내에 데이터를 저장할 준비를합니다. – Juniar

답변

0

, 치장 개선 할 수있는 간단한 시작 ...

char * lines[2000];   /* 2000 lines enough? */ 
int n = 0; 

FILE * fp = popen("your command here", "r"); 
if (fp == NULL) abort(); 

lines[0] = malloc(1000); /* 1000 byte lines enough? */ 
while ((fgets(lines[n], 1000, fp) != NULL) { 
    if (n == 1999) abort();  /* oh crud... */ 
    lines[++n] = malloc(1000); 
} 
free(lines[n]); 
pclose(fp); 
+0

아마도 최악의 경우에 1999 라인이 새는 것을 피함으로써 확실하게 장식 할 수 있습니다. – michaelmeyer

+0

나는 그가 선과 함께 뭔가를하고 싶다고 생각했다. –

관련 문제