Python Glossary English

Python 3.3+Linuxsignalпонятие

signal.struct_siginfo

маски и ожидание

Тип результата sigwaitinfo и sigtimedwait: именованный кортеж с полями si_signo, si_code, si_pid, si_uid и др. Linux.

Синтаксис

info.si_signo, info.si_pid, info.si_uid

Создавать его самому незачем — он только приходит из sigwaitinfo/sigtimedwait. Это структурная последовательность: поля доступны и по имени, и по индексу, а распаковка даёт все семь значений. Поля si_status и si_band осмысленны лишь для отдельных сигналов (SIGCHLD, SIGPOLL), в остальных случаях там мусор или ноль. Номер в si_signo — простое int, имя даст signal.Signals(info.si_signo).

Примеры

import os, signal
old = signal.pthread_sigmask(signal.SIG_BLOCK, {signal.SIGUSR1})
signal.raise_signal(signal.SIGUSR1)
info = signal.sigwaitinfo({signal.SIGUSR1})
print(type(info).__name__, len(info))  # → struct_siginfo 7
print(signal.Signals(info.si_signo).name, info[0] == info.si_signo)  # → SIGUSR1 True
print(info.si_pid)  # → ? PID этого процесса
signal.pthread_sigmask(signal.SIG_SETMASK, old)

См. также

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