我正在尝试创建一个Mac应用,在某些情况下应该返回错误代码。这是一个英特尔捆绑。 (这是一个Carbon C ++项目,但这可能无关紧要。)
在C ++中执行它的标准方法是让main函数返回值,这就是我所做的,所以我认为这部分是正确的。 (我也尝试过明确地调用exit(42)
)
问题是:我如何获得这个值?
当我使用open myapp
从终端启动应用时,返回值始终为0
,即使我总是返回不同的数字。 (使用echo $?
检查)
这是open命令的返回值吗?我的应用程序的返回值是否被吞噬了?
如果我使用0
从另一个程序启动它,我也总是得到一个execve
返回码(这就是指定使用该应用程序的方式)。
是否可以从应用程序中检索返回代码?
Sidenote :我需要将程序捆绑在一起。
答案 0 :(得分:2)
我认为你可能需要直接执行应用程序二进制文件,即深入到这个包中:
$ /Applications/Address\ Book.app/Contents/MacOS/Address\ Book
答案 1 :(得分:1)
您可能无法做到这一点,因为您的主将返回NSApplicationMain()
对象。当用户选择点击“退出”按钮时,程序结束由用户决定。
但是,您可以使用 applicationWillTerminate
方法执行您想要的操作。