c - 在 Mac 上的新终端窗口中启动进程

标签 c macos terminal console

在 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/

相关文章:

Python C++ 包装器 : Convert multi-type struct to it's python representation (preferable dictionary)

c - dev-c++ 套接字错误

macos - 与 OSX 的 UIViewController 方法等效的是什么?

android - 如何使用 Charles Proxy 分析来自 Android 6 模拟器的 https 流量

mongodb - 无法启动 "mongod",立即中止

Bash grep 命令开始于或结束于

带堆栈的 C 计算器程序

c - 我不明白为什么这没有正确显示扫描信息

ios - Pods 库与第一个目标链接两次,如 libPods.a 和 libPods-<targetname>.a

javascript - 使用 Node.js 创建可滚动/可重写的终端/stdout 接口(interface)