Что означает значение из Java Process.exitValue ()?

я используюProcess с помощьюProcessBuilder запустить исполняемый файл, выполненный на С-коде. Я ловлюProcess.exitValue() реагировать на это значения выхода. Я заметил, что не все выходные значения взяты из исполняемого файла. Например, я получаю значение выхода 139, и нигде в моем коде C я не возвращаю значение выхода 139.

Я пытаюсь найти обзор выходных значений, но не могу найти его, и теперь я обнаружил, что выходное значение может зависеть от ОС. (Я использую Ubuntu, кстати).

Кажется, единственное выходное значение, в котором нужно быть уверенным, это 0, когда все идет хорошо. Есть ли спецификации для значений выхода? Могу ли я быть уверен, что определенный диапазон можно использовать только для моей собственной программы? Какие коды выхода зарезервированы для ОС.

Я обнаружил, что 139, вероятно, ошибка памяти в коде C. Я хочу избавиться от, вероятно. Я не могу получить никакого обзора выходных значений (например, 139 = .....)

Это упрощенный код, кстати:

ProcessBuilder p = new ProcessBuilder(executableName,
   executableArguments);
final Process shell = p.start();
InputStream shellIn = shell.getInputStream();
int shellExitStatus = shell.exitValue();

Примечание. Запуск исполняемого файла C в оболочке Ubuntu не выдает никакой ошибки (т.е. значение выхода 0). Но выполнение той же команды в Java дает значение выхода 139.

Ответы на вопрос(1)

Ваш ответ на вопрос