如何从C ++代码中打开一个新终端并在其中写入

时间:2013-09-25 11:18:30

标签: c++ macos terminal system system-calls

如何从C ++代码中打开一个新终端并在其中写入。我知道如何使用系统命令(系统(“/ Applications / Utilities / Terminal.app / Contents / MacOS / Terminal”))打开新终端,但不知道如何在其中写入字符串?我正在使用操作系统mac os。

在Linux中你可以这样做

std :: string cmd = "gnome-terminal-x sh-c 'ls-l; exec bash'"; 
system (cmd.c_str ());

如何在mac os中完成?

1 个答案:

答案 0 :(得分:0)

您调用system()的基本机制仍然有效,您只需要一个不同的命令。

执行此操作的一种方法是通过osascript从命令行运行AppleScript。您可以使用" AppleScript编辑器"应用程序(并在其“窗口”菜单中使用“库”命令)以了解有关以这种方式提供给程序的所有命令的更多信息。

例如,要使Mac终端运行top,我可以调用此命令行:

/usr/bin/osascript -e 'tell application "Terminal" to do script "top"'

同样,如果我已编写完整的命令文件来运行,我可以给它一个.command扩展名,并要求终端打开该文件:

/usr/bin/osascript -e 'tell application "Terminal" to open "/Users/me/Desktop/MyFile.command"'