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 标记(因为程序未连接到任何终端)并退出。
有些文件管理器可以为您提供“在终端中执行”选项。我不知道您的文件管理器是否可以配置为这样做。