Код возврата из приложения Mac - PullRequest
5 голосов
/ 20 июля 2010

Я пытаюсь создать приложение для Mac, которое в некоторых случаях должно возвращать код ошибки.Это комплект Intel.(Это проект Carbon C ++, но это, вероятно, не имеет значения.)

Стандартный способ сделать это в C ++ состоит в том, чтобы основная функция возвращала значение, и это то, что я делаю, поэтому я думаю, что эта частьверно.(Я также пытался явно вызвать exit(42))

Вопрос: как мне получить это значение?

Когда я запускаю приложение из терминала с open myapp, возвращаемое значениевсегда 0, даже если я всегда возвращаю другое число.(проверено с помощью echo $?)

Является ли это возвращаемым значением из команды open, и является ли возвращаемое моим приложением значение где-нибудь проглатывается?

Я также всегда получаю код возврата 0, еслизапустить его из другой программы, используя execve (именно так приложение предназначено для использования).

Возможно ли получить код возврата из приложения?

Sidenote: мне нужно, чтобы программа была в комплекте.

Ответы [ 2 ]

2 голосов
/ 20 июля 2010

Я думаю, что вам, вероятно, нужно выполнить двоичный файл приложения напрямую, то есть развернуть пакет таким образом:

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

1 голос
/ 20 июля 2010

Вы, вероятно, не можете этого сделать, поскольку ваш main вернет объект NSApplicationMain().Конец программы определяется пользователем, когда он решает щелкнуть по кнопке «выйти».

Однако вы можете использовать метод applicationWillTerminate, чтобы делать то, что вы хотите.

...