c - ncurses 和 C- 在 ncurses 窗口中显示 'df' 命令的输出

标签 c terminal ncurses curses

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

#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;
}

关于c - ncurses 和 C- 在 ncurses 窗口中显示 'df' 命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38274985/

相关文章:

java - 如何检测java应用程序中运行JVM的终端

ncurses - 如果没有 initcr,getch 将无法工作

linux - 为什么 ld 找不到 libcurses.so,即使它在 `/usr/lib` 目录中?

python - 不完整的 gamma 函数 : can this code get any faster in cython, C 或 Fortran?

c - 快速排序功能仅在最后一个值最大时才有效

c - 为什么这个工具不打印字符串?

c - 使用 NCurses 和 C 来显示系统信息的简单文本 GUI (TUI)

c - GCC 优化选项 "tree-***"系列的目的是什么?

macos - 使用简单的 bash 脚本切换 AppleShowAllFiles?

linux - 'cd' 命令是否可以使用 'which' 命令?(我想将这两个命令合并为一个。)