在 Windows 上我可以做 CreateProcess(..., CREATE_NEW_CONSOLE, ...)
并且我的子进程(它是控制台应用程序,而不是 GUI)将在一个新窗口中启动。在 Mac OS 上模拟这个的最简单方法是什么?
最佳答案
open -a Terminal.app $(which program)
获取运行指定程序的新终端(假设您使用的是 bash)。
您可以使用 execve()
(可能在 fork()
之后)在不知道任何 Apple API 的情况下在编译代码中实现同样的事情(我想有一种正确的方法来做到这一点......)。
阅读 man open
.
编辑:您不需要指定 Terminal.app 的路径(查找程序可以弄清楚)。
如果你有 X 运行,那就更简单了:只需用 生成一个新的 xterm xterm -e program &
.
阅读 man xterm
(这将需要更长的时间......)。
我将就 CLI 对普通 mac 程序的正确使用(或缺乏)向 Chris 提出第二个意见。在我的业务中,这是意料之中的,但典型的用户会{confused|angry|unhappy}。
关于c - 在 Mac 上的新终端窗口中启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/332995/