我收到了一個Unix工具,我想在Windows下運行/編譯。看完之後,我發現它使用了fork
和execv
等等。我現在想了解它的功能以及如何在Windows中實現這一點。Windows,fork和execv
該代碼不僅僅是要求在這裏,所以請不要評論這段代碼是否合理。
pid = fork();
if(pid==0){
execv("/usr/bin/java",args);
}
如果我解釋這個正確的,這其中不僅會像調用java
與args
陣列中提供的參數。所以在Windows中,這可以很容易地通過像system()
或CreateProcess
(我沒有閱讀如何做到這一點,只是知道它可以做到)。
但這裏是我的問題:如果我理解正確的驗證碼叉,並呼籲execv
因爲execv
不返回,沒有第一分叉是我的程序將無法完成。它是否正確?
有任何相關信息可以被定義,如果我剛剛創建了一個那就沒辦法了處理?可能java需要繼承我的進程中需要工作的任何東西(僅供參考:工具也使用unix管道,但可能完全不相關)? – javex 2012-08-13 15:11:13
@javex我不確定你在問什麼。無論您是否分叉,新創建的流程都會繼承東西。 – cnicutar 2012-08-13 15:12:41
好吧謝謝 - 我會自己找出其餘的,謝謝你的幫助 – javex 2012-08-15 08:01:43