2010-10-21 46 views
5

Dans mon application C#, je lance un programme en utilisant la classe .NET Process. Parfois, après que le programme a fini, le Process.ExitCode est -1. C'est un grand programme, et j'ai du mal à trouver où `exit 'est appelé avec -1.ExitCode de -1 retourné en C#

En fait, je ne vois pas comment il est possible qu'un programme retourne un code de sortie de -1. J'ai créé un programme C qui revient juste de 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 $? ' montre également 255 dans ce cas.

Le programme d'origine - celui qui montre un ExitCode de -1 - est écrit en OCaml. Je ne pense pas que cela devrait avoir de l'importance.

Alors, qu'est-ce qui causerait que Process.ExitCode apparaisse comme -1?

Répondre

3

Ce code produit un code de sortie de -1:

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

En d'autres termes: lorsque le processus avorte inattendu, vous obtenez -1 comme résultat. Peut-être que cela aide.

+1

Ouais, c'est tout. –