2010-10-21 1 views
5

Nella mia applicazione C#, sto accendendo un programma utilizzando la classe .NET Process. A volte, al termine del programma, Process.ExitCode è -1. È un programma di grandi dimensioni, e ho difficoltà a rintracciare dove 'exit' viene chiamato con -1.ExitCode of -1 restituito a C#

In effetti, non vedo come sia possibile che un programma restituisca un codice di uscita di -1. Ho creato un programma C che torna da 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 $? ' mostra anche 255 in quel caso.

Il programma originale, quello che mostra un codice di uscita di -1, è scritto in OCaml. Non penso che dovrebbe essere importante.

Quindi cosa causerebbe Process.ExitCode per mostrare come -1?

risposta

3

Questo codice produce un codice di uscita pari a -1:

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

In altre parole: quando il processo si interrompe inaspettato, si ottiene -1 come risultato. Forse questo aiuta.

+1

Sì, è così. –