2016-07-08 4 views
2

나는 비교적 ncurses에 익숙하지 않으며 ncurses의 명령 행에서 실행 된 명령의 출력을 표시하는 간단한 방법이 궁금합니다. 내가 시작하고있는 TUI.ncurses 및 C- ncurses 창에서 'df'명령의 출력 표시

#include <ncurses.h> 
#include <stdlib.h> 
#include <stdio.h> 


int main(){ 

initscr(); 
cbreak(); 
char command[] = "df"; 
printw(system(command)); 
} 

답변

2

: 목표는 가능한 메모리, 네트워크 정보, 등 같은 다양한 시스템 정보를 표시하는 메뉴 화면을 제공하는 것입니다 건너 :) 내가 작동하지 않습니다 알고이 psuedocode 같은 즉, 뭔가 (그냥 포인트를 얻을 수 있습니다 명령에 파이프을 열어이 작업을 수행 할 수 있습니다 (이 예에서는 "df"을 사용해야합니다). 다음과 같은 내용 :

#include <ncurses.h> 
#include <stdlib.h> 
#include <stdio.h> 

int 
main(void) 
{ 
    FILE *pp; 

    initscr(); 
    cbreak(); 
    if ((pp = popen("df", "r")) != 0) { 
     char buffer[BUFSIZ]; 
     while (fgets(buffer, sizeof(buffer), pp) != 0) { 
      addstr(buffer); 
     } 
     pclose(pp); 
    } 
    getch(); 
    return EXIT_SUCCESS; 
} 
+0

음. 알 수 있습니다. 이것은 본질적으로 제가 고맙다고 생각한 것입니다! 파이프에서 인쇄 된 것을 제어하는 ​​방법이 있습니까? 나는 처음 몇 자만 인쇄합니까? – Broncos423

+0

'addstr'은 빠르기 때문에 (파이프에서 줄 바꿈을 다듬기 위해 작업 할 필요가 없었기 때문에)'addstr'을 사용했습니다. 'addnstr' 또는'printw'를 사용하여 몇개의 문자 만 출력 할 수 있습니다. –