如何向终端发送命令并从终端接收数据?

如何向终端发送命令并从终端接收数据?

Linux,Qt Creator。我在调试器中运行了此操作:

#include <stdio.h>
char p[1000];
int main()
{
    scanf("%s",p);
    return 0;
} 

它有效。但是,当我双击可执行文件时没有出现终端(Windows 会这样,而 Linux 则相反)。我想我需要创建一个。例如,像这样:

system("/usr/bin/x-terminal-emulator");

现在我需要与它沟通。怎么做?谢谢。

答案1

我创建了一个程序,该程序调用另一个程序,该程序又调用另一个程序。第一行的关键内容是:

execl("/usr/bin/x-terminal-emulator", "/usr/bin/x-terminal-emulator",
        "-e", "/home/kkk/build-untitled-Desktop-Debug/untitled",
        "/home/kkk/Downloads/1.pdf", (char*) NULL);

答案2

Windows 区分“仅控制台”可执行文件和 GUI 可执行文件,如果您启动前者之一,它将为您打开控制台。

Linux 没有这种区别 - 所有可执行文件都差不多。如果您尝试从文件管理器(双击文件管理器)启动一个文件,它将运行,尝试从标准输入读取,收到 EOF 标记(因为程序未连接到任何终端)并退出。

有些文件管理器可以为您提供“在终端中执行”选项。我不知道您的文件管理器是否可以配置为这样做。

相关内容