2010-10-21 84 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