2010-10-21 8 views
5

W mojej aplikacji C# uruchamiam program przy użyciu klasy procesu .NET. Czasami po zakończeniu programu kod Process.ExitCode ma wartość -1. Jest to duży program i mam problem ze śledzeniem, gdzie `exit 'jest wywoływane za pomocą -1.Kod wyjścia równy -1 wrócił do C#

W rzeczywistości nie widzę, jak to możliwe, aby program zwrócił kod zakończenia równy -1. Stworzyłem program w języku C, który po prostu wraca z 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 $? ' w tym przypadku pokazuje również 255.

Oryginalny program - ten, który pokazuje kod Exit -1 - jest zapisany w OCaml. Nie sądzę, żeby to miało znaczenie.

Co spowodowałoby, że kod Process.ExitCode będzie wyświetlany jako -1?

Odpowiedz

3

Ten kod generuje kod zakończenia -1:

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

Innymi słowy, gdy proces przerywa niespodziewany, masz -1 jako wynik. Może to pomaga.

+1

Tak, to wszystko. –

Powiązane problemy