2010-10-21 168 views
5

在我的C#應用​​程序中,我使用.NET Process類啓動了一個程序。有時,程序結束後,Process.ExitCode爲-1。這是一個很大的程序,我無法追蹤'exit'被-1調用的地方。退出代碼-1返回到C#

實際上,我不明白如何讓程序返回-1的退出碼。我創建了一個C程序,從main'. Whatever value I return from C, in C#, I see that value mod 256. If the C program returns -1, in C#, I see 255. From a Cygwin bash shell, echo $?'在這種情況下也顯示255。

原始程序 - 顯示ExitCode爲-1的程序 - 寫在OCaml中。我認爲這不重要。

那麼會導致Process.ExitCode顯示爲-1?

回答

3

這段代碼產生的-1退出代碼:

class Program 
{ 
    static void Main(string[] args) 
    { 
     Process.GetCurrentProcess().Kill(); 
    } 
} 

換句話說:當程序中止意外,你會得到-1的結果。也許這有幫助。對,

+1

是的,就是這樣。 – 2010-10-21 06:03:25