2017-05-31 82 views
0

在C++中,通常使用int main(int argc, char* argv []) afaik。
我不知道的是,返回的int可以給予另一個.exe或.jar嗎?例如,如果我得到的東西在C++中比在Java中更容易執行,我希望將結果分配給int或java中的其他任何東西?
如果不是「多語言」,至少可以從一個C++ EXE到另一個C++ EXE嗎?可執行文件是否可以將某些內容返回給其他可執行文件?

+0

它真的聽起來像你需要的是一個庫,並且你從其他編程語言(很可能使用C接口)調用該庫。 – NathanOliver

+0

從'main'返回的值被賦予操作系統。你需要探索你的操作系統,看看它有什麼功能。 –

回答

1

是的。如果一個程序啓動另一個程序,它可以收集孩子終止時的退出代碼。

你也可以有兩個進程之間多溝通,如果你需要 - 如設置標準輸入輸出之間的管道,以便家長和孩子所以只要通過讀發送任意的消息/寫cin/cout,也可以使用套接字,UNIX域套接字,TCP套接字,任何或進程之間的共享內存。 查找IPC(進程間通信)。

順便說一下;每個應用程序寫入的語言無關緊要。重要的是他們正在使用相同的IPC機制。

0

main返回的值成爲進程的退出代碼。如果啓動子進程,那麼通常可以通過某種方式訪問​​該值(請參閱適用於Java的the Process docs),但通常不用於通信結果。按照慣例,退出代碼用於報告成功或失敗:0表示成功,非零退出代碼用於表示各種錯誤情況。

從一個進程到另一個進程的通信有多種方法。最簡單的方法通常是將數據寫入子進程的標準輸入流,並從其標準輸出和標準錯誤流接收數據。請參閱the ProcessBuilder docs瞭解如何使用Java來完成此操作。進程還可以使用其他方法進行通信,如套接字或共享內存,但這些是更大的主題。