ncurses 和 C- 在 ncurses window 中显示 'df' 命令的输出

ncurses and C- Display output of 'df' command in ncurses window

我对 ncurses 比较陌生,只是想知道在我开始的 ncurses TUI 中显示在 terminal/the 命令行中执行的命令输出的简单方法是什么。即像这样的伪代码(我知道它不起作用,只是为了得到重点:)目标是呈现一个菜单屏幕,显示各种系统信息,如可用内存、网络信息等:

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


int main(){

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

您可以通过向命令打开一个 管道 来完成此操作(顺便说一句,示例应该使用 "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;
}