Arquivo poll.h
Propósito
Define as estruturas e as bandeiras usadas pela subroutine poll .
Descrição
O arquivo /usr/include/sys/poll.h define várias estruturas usadas pela subroutine poll . Uma matriz de estruturas pollfd ou pollmsg ou uma estrutura pollist especificam os descritores de arquivos ou ponteiros e filas de mensagens para os quais a subroutine poll verifica o status de E/S. Este arquivo também define os sinalizadores de eventos retornados, erro devolveu sinalizadores de eventos, sinalizadores de tipo de dispositivo e sinalizadores de entrada usados em operações de pesquisa.
Durante uma operação de pesquisa em ambos os descritores de arquivo e filas de mensagens, o parâmetro ListPointer aponta para uma estrutura pollist , que pode especificar descritores de arquivo ou ponteiros e filas de mensagem O programa deve definir a estrutura pollist na seguinte forma:
struct pollist {
struct pollfd fdlist[f];
struct pollmsg msglist[m];
};A estrutura pollfd e a estrutura pollmsg na estrutura pollist executam as seguintes funções:
| Item | Descrição |
|---|---|
| pollfd [f ] | Esta estrutura define uma matriz de descritores de arquivos ou ponteiros de arquivo. A variável f especifica o número de elementos na matriz. |
| pollmsg [m ] | Esta estrutura define uma matriz de identificadores de fila de mensagens. A variável m especifica o número de elementos na matriz. |
Uma macro POLLIST também é definida no arquivo poll.h para definir a estrutura pollist O formato da macro é:
POLLIST(f, m) Declarator . . . ;O parâmetro Declarator é o nome da variável que é declarado como tendo este tipo.
As estruturas pollfd e pollmsg definidas no arquivo poll.h contêm os campos a seguir:
| Item | Descrição |
|---|---|
| fd | Especifica um descritor de arquivo válido ou ponteiro de arquivo para a subroutine poll . Se o valor deste campo for negativo, este elemento é ignorado. |
| msgid | Especifica um ID de fila de mensagens válido para a subroutine poll . Se o valor deste campo for negativo, este elemento é ignorado. |
| events | Os eventos sendo rastreados. Esta é qualquer combinação das seguintes bandeiras:
|
| revents | Eventos retornados. Este campo especifica os eventos que ocorreram. Esta pode ser qualquer combinação dos eventos solicitados pelo campo de eventos. Este campo também pode conter uma das bandeiras a seguir:
|