我試圖創建一個Mac應用程序,在某些情況下應該返回一個錯誤代碼。這是英特爾軟件包。 (這是一個碳C++項目,但這可能是不相關的。)從Mac應用程序返回代碼
在C++中執行它的標準方法是讓主函數返回值,這就是我所做的,所以我認爲該部分是正確的。 (我也嘗試明確呼籲exit(42)
)
問題是:我該如何得到這個值?
當我從終端啓動應用程序open myapp
時,即使我總是返回不同的數字,返回值始終爲0
。 (使用echo $?
進行檢查)
這是來自open命令的返回值,是我的應用程序的返回值被吞噬了嗎?
我也總是得到一個0
返回碼,如果我從其他程序使用execve
(這是如何指定要使用的應用程序)啓動它。
是否有可能從應用中檢索返回代碼?
旁註:我需要程序捆綁在一起。
我正在那樣做。它沒有幫助。 – darklon 2010-07-20 12:58:39
'open your.app'和執行'your.app/Contents/MacOS/yourApp'是有區別的。前者不給出應用程序的返回碼,但後者的確如此。這就是保羅寫的。 – Yuji 2010-07-20 22:05:39
我明白了,這是一個好主意。實際上只有後者似乎與execve()一起工作,但返回代碼似乎沒有到達,當我用wait()等待進程時,得到0,而不是用exit()返回的結果。我也嘗試過與終端,我也得到了0。 – darklon 2010-07-20 22:49:30