pcntl_sigwaitinfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigwaitinfoEspera por sinais

Descrição

pcntl_sigwaitinfo(array $signals, array &$info = []): int|false

A função pcntl_sigwaitinfo() suspende a execução do script de chamada até que um dos sinais fornecidos em signals seja entregue. Se um dos sinais já estiver pendente (por exemplo, bloqueado por pcntl_sigprocmask()), pcntl_sigwaitinfo() retornará imediatamente.

Parâmetros

signals

Array de sinais a serem aguardados.

info

O parâmetro info é definido como uma array contendo informações sobre o sinal.

Os seguintes elementos são definidos para todos os sinais:

  • signo: Número do sinal
  • errno: Um número de erro
  • code: Código de sinal

Os seguintes elementos podem ser definidos para o sinal SIGCHLD:

  • status: Valor ou sinal de saída
  • utime: Tempo do usuário consumido
  • stime: Tempo do sistema consumido
  • pid: ID do processo que está enviando
  • uid: ID do usuário real do processo que está enviando

Os seguintes elementos podem ser definidos para os sinais SIGILL, SIGFPE, SIGSEGV e SIGBUS:

  • addr: Local de memória que causou a falha

O seguinte elemento pode ser definido para o sinal SIGPOLL:

  • band: Evento de banda
  • fd: Número do descritor de arquivo

Valor Retornado

Retorna um número de sinal em caso de sucesso, ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.4.0 Um ValueError é lançado se signal estiver vazio.
8.4.0 Um TypeError é lançado se o valor signal não for um int.
8.4.0 Um ValueError é lançado se o valor signal for inválido.

Exemplos

Exemplo #1 Exemplo de pcntl_sigwaitinfo()

<?php
echo "Sinal SIGHUP bloqueante\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

echo
"Enviando SIGHUP para si mesmo\n";
posix_kill(posix_getpid(), SIGHUP);

echo
"Aguardando por sinais\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
0
dave at mudsite dot com
8 years ago
This function is not available on platforms that do not implement the underlying C function. Included in this would be MaxOS[1], and FreeBSD[2]

[1] : http://opensource.apple.com//source/xnu/xnu-1456.1.26/bsd/sys/signal.h

[2] : http://fxr.watson.org/fxr/source/sys/signal.h?v=FREEBSD11
To Top