Может ли процесс Linux умереть от механизма, отличного от фатального сигнала или вызова `exit (2)`?

Для добавления сжатия к результирующему zip-файлу проверьте эту ссылку .

Вам нужно изменить:

zip = zipfile.ZipFile('Python.zip', 'w')

на

zip = zipfile.ZipFile('Python.zip', 'w', zipfile.ZIP_DEFLATED)

0
задан tophyr 4 March 2019 в 22:22
поделиться

1 ответ

Да, я считаю, что вы правы, что это единственные возможности.

Вы можете подтвердить это из документации wait(2). Есть два связанных макроса, WIFEXITED() и WIFSIGNALED(), которые можно использовать, чтобы определить, почему wait вернул данный процесс. Других возможностей нет (я не считаю WIFSTOPPED(), так как он используется для обнаружения приостановленных процессов, а не процессов, которые завершились).

На самом деле, exit(3) это не системный вызов, это функция библиотеки Си. Системный вызов - _exit(2). exit(3) выполняет некоторую очистку C (например, очищает буферы stdio и вызывает функции atexit()), а затем вызывает _exit(2) для фактического выхода из процесса.

0
ответ дан Barmar 4 March 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: