내 C 프로그램의 배열에 페이지 폴트 수를 저장하려고합니다. 나는 bash 명령을 실행하고 그것의 출력을 배열에 저장하려고한다. 여기 내 명령c 파일에서 bash 명령을 실행하고 배열에 출력을 저장하십시오.
$ cat /proc/vmstat | grep pgfault
내 C 프로그램의 배열에 페이지 폴트 수를 저장하려고합니다. 나는 bash 명령을 실행하고 그것의 출력을 배열에 저장하려고한다. 여기 내 명령c 파일에서 bash 명령을 실행하고 배열에 출력을 저장하십시오.
$ cat /proc/vmstat | grep pgfault
, 치장 개선 할 수있는 간단한 시작 ...
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);
아마도 최악의 경우에 1999 라인이 새는 것을 피함으로써 확실하게 장식 할 수 있습니다. – michaelmeyer
나는 그가 선과 함께 뭔가를하고 싶다고 생각했다. –
'는 popen()'플러스'FREAD()'이다. – michaelmeyer
C 프로그램에 배열을 생성하는 줄을 포함시킨 다음 루프 내에 데이터를 저장할 준비를합니다. – Juniar