第二次编辑
一些澄清......
我写了一个要求输入的C程序(在这种情况下,使用fgets()
)。当我将它编译成C可执行文件时,我注意到这种行为:
如果我从终端运行可执行文件:~$ ./program_name
显然终端会话在进程完成后继续。像往常一样,我遇到一个空白的命令行:~$
但是,如果我通过双击C可执行文件来运行可执行文件,则会出现一个终端,我可以输入数据,如程序所要求的那样。在输入数据之后,过程结束,“终端”说[Process completed]
,并且终端显然不可用。
当我在OSX中运行允许终端输入的C可执行文件(fgets()
例如,通过)时,在输入信息后,将[Process completed]
显示该消息,并且终端似乎无法使用。这对我的目的来说很不方便。
问题: 我们假设我在没有终端打开的情况下运行它。所以我双击程序。
通过命令行输入执行C程序后,有没有办法留在终端?
- 我的程序要求输入,所以我可以给它输入可以
echo
在shell中...是否有任何方式/命令留在终端?产生一个新的终端是一种选择,但它是远远不希望的。
- 我的程序要求输入,所以我可以给它输入可以
有没有办法通过改变我的C程序留在终端?
附加问题: 是否有终端命令产生新的终端窗口?
欢迎所有想法......!我有一些,但没有什么令人满意的。
~$ ./program_name
两者兼而有之:我在一本书中读到它,实现它,并遇到了这个没有讨论过的行为。