ExitCode из -1 возвращен в C#

В моем приложении C# я запускаю программу, используя класс .NET Process. Иногда после завершения программы Process.ExitCode равен -1. Это большая программа, и у меня возникли проблемы с отслеживанием того, где `exit' вызывается с -1.

На самом деле, я не понимаю, как возможно, чтобы программа возвращала код выхода -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?


person Paul Steckler    schedule 21.10.2010    source источник


Ответы (1)


Этот код создает код выхода -1:

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

Другими словами: когда процесс неожиданно прерывается, в результате вы получаете -1. Может быть, это поможет.

person Pieter van Ginkel    schedule 21.10.2010