从Mac应用程序返回代码

时间:2010-07-20 12:14:51

标签: macos return-value bundle

我正在尝试创建一个Mac应用,在某些情况下应该返回错误代码。这是一个英特尔捆绑。 (这是一个Carbon C ++项目,但这可能无关紧要。)

在C ++中执行它的标准方法是让main函数返回值,这就是我所做的,所以我认为这部分是正确的。 (我也尝试过明确地调用exit(42)

问题是:我如何获得这个值?

当我使用open myapp从终端启动应用时,返回值始终为0,即使我总是返回不同的数字。 (使用echo $?检查)

这是open命令的返回值吗?我的应用程序的返回值是否被吞噬了?

如果我使用0从另一个程序启动它,我也总是得到一个execve返回码(这就是指定使用该应用程序的方式)。

是否可以从应用程序中检索返回代码?

Sidenote :我需要将程序捆绑在一起。

2 个答案:

答案 0 :(得分:2)

我认为你可能需要直接执行应用程序二进制文件,即深入到这个包中:

$ /Applications/Address\ Book.app/Contents/MacOS/Address\ Book

答案 1 :(得分:1)

您可能无法做到这一点,因为您的主将返回NSApplicationMain()对象。当用户选择点击“退出”按钮时,程序结束由用户决定。

但是,您可以使用 applicationWillTerminate 方法执行您想要的操作。