Python Glossary English

Python 3.3+Linux · macOSosпонятие

os.waitid_result

os — ожидание процессов

Тип результата os.waitid(): именованный кортеж (si_pid, si_uid, si_signo, si_status, si_code). Доступно на Unix.

Синтаксис

os.waitid_result(...)

Поля уже разобраны: si_code говорит, что случилось (CLD_EXITED, CLD_KILLED, CLD_STOPPED), а si_status — код возврата или номер сигнала в зависимости от si_code. Поэтому si_status нельзя читать без si_code. Как и другие результаты os, ведёт себя и как кортеж.

Примеры

import os
pid = os.fork()   # → ? только Unix: 0 в дочернем процессе, PID потомка в родительском
if pid == 0: os._exit(5)   # → ? потомок сразу завершается с кодом возврата 5
info = os.waitid(os.P_PID, pid, os.WEXITED)   # → ? только Unix: объект os.waitid_result
print(info.si_status, info.si_code == os.CLD_EXITED)   # → ? 5 True
print(info.si_pid == pid, info.si_uid == os.getuid())   # → ? True True
print(info[3])   # → 5 — это именованный кортеж: si_status доступен и по индексу
print(info.si_signo)   # → ? номер сигнала SIGCHLD (на Linux 17) — waitid всегда сообщает именно о нём

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности