Process Control pcntl_sigwaitinfo
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
pcntl_sigwaitinfo — 신호를 기다립니다
설명
pcntl_sigwaitinfo(array $signals
, array &$info
= []): int|false
pcntl_sigwaitinfo() 함수는 signals
에 제공된 신호 중 하나가 전달될 때까지 호출 스크립트의 실행을 일시 중단합니다. 신호 중 하나가 이미 보류 중이면(예: pcntl_sigprocmask()에 의해 차단됨) pcntl_sigwaitinfo()는 즉시 반환됩니다.
매개변수
signals
- 대기할 신호의 배열입니다.
info
info
매개변수는 신호에 대한 정보를 포함하는 배열로 설정됩니다.모든 신호에 대해 다음 요소가 설정됩니다.
- signo: Signal number
- errno: An error number
- code: Signal code
SIGCHLD
신호에 대해 다음 요소가 설정될 수 있습니다.- status: Exit value or signal
- utime: User time consumed
- stime: System time consumed
- pid: Sending process ID
- uid: Real user ID of sending process
SIGILL
,SIGFPE
,SIGSEGV
및SIGBUS
신호에 대해 다음 요소를 설정할 수 있습니다.- addr: Memory location which caused fault
SIGPOLL
신호에 대해 다음 요소를 설정할 수 있습니다.- band: Band event
- fd: File descriptor number
반환 값
성공하면 신호 번호를 반환하고 실패하면 false
을 반환합니다.
Examples
예제 #1 pcntl_sigwaitinfo() 예제
<?php
echo "Blocking SIGHUP signal\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
echo "Sending SIGHUP to self\n";
posix_kill(posix_getpid(), SIGHUP);
echo "Waiting for signals\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>
기타
- pcntl_sigprocmask() - 차단된 신호 설정 및 검색
- pcntl_sigtimedwait() - 시간 초과와 함께 신호를 기다립니다.