Что означает значение из 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.