Arquivo termios.h

Propósito

Define a estrutura do arquivo termério , que fornece a interface do terminal para compatibilidade POSIX .

Descrição

O arquivo /usr/include/termios.h contém informações usadas por subroutines que se aplicam a arquivos terminais. As definições, valores e estruturas neste arquivo são necessários para compatibilidade com o padrão POSIX . O arquivo termios.h também suporta ioctl operações de controle de modem

As informações gerais da interface de terminal estão contidas no arquivo termio.h .. A estrutura termio no arquivo termio.h define os modos de entrada, saída, controle e disciplina de linha básicos. Se um programa de chamada for identificado como requerendo compatibilidade POSIX , a estrutura termios e informações adicionais do pacote de controle POSIX no arquivo termios.h serão implementadas. As operações de tamanho de janela e de terminal usam a estrutura winsize , definida no arquivo ioctl.h . A estrutura termios no arquivo termios.h contém os seguintes campos:

  • c_iflag
  • c_oflag
  • c_cflag
  • c_lflag
  • c_cc

O arquivo termios.h também define os valores para os parâmetros a seguir da sub-rotina tcsetattr :

  • OptionalActions
  • QueueSelector
  • Ação

O arquivo termios.h também suporta ioctl operações de controle de modem

Descrições do campo
 
c_iflag
Descreve o controle de entrada do terminal básico. O valor inicial de controle de entrada é todo bits claro. Os modos de entrada possíveis são:
IGNBRK
Ignora a condição de quebra. No contexto da transmissão de dados em série assíncrona, um condição de quebra é definido como uma sequência de bits valorizado zero que continua por mais do que o tempo necessário para enviar um byte. Toda a sequência de bits com valor zero é interpretada como uma única condição de quebra, mesmo que ela continue por uma quantidade de tempo equivalente a mais de um byte. Se a sinalização IGNBRK for definida, uma condição de quebra detectada na entrada é ignorada, o que significa que ele não é colocado na fila de entrada e, portanto, não lido por nenhum processo.
BRKINT
Interrupção de sinal na condição de quebra. Se a sinalização IGNBRK não for definida e a sinalização BRKINT for definida, a condição de quebra ossa as filas de entrada e saída. Se o terminal for o terminal controlador de um grupo de processos de primeiro plano, a condição de quebra gera um sinal SIGINT para aquele grupo de processo de primeiro plano. Se nem o IGNBRK nem a sinalização BRKINT estiver definida, uma condição de quebra é lida como um único \0, ou se a sinalização PARMRK estiver configurada, como \377, \0, \0.
IGNPAR
Ignora caracteres com erros de paridade. Se esta sinalização for definida, um byte com um erro de enquadramento ou paridade (diferente de break) é ignorado.
PARMRK
Marca erros de paridade. Se o sinalizador PARMRK estiver configurado, e a sinalização IGNPAR não for definida, um byte com um erro de enquadramento ou paridade (diferente de break) é dado ao aplicativo como a sequência de três caracteres \377, \0, x, em que \377, \0 é uma bandeira de dois caracteres precedendo a cada sequência e x são os dados do caractere recebidos com erro. Para evitar ambiguidade neste caso, se a sinalização ISTRIP não for definida, um caractere válido de \377 é dado para o aplicativo como \377, \377. Se nem o IGNPAR nem a sinalização PARMRK estiver configurado, um erro de enquadramento ou paridade (diferente de break) é dado ao aplicativo como um único caractere \0.
INPCK
Permite a verificação de paridade de entrada. Se esta sinalização for definida, a verificação de paridade de entrada está ativada. Se não for definido, a verificação de paridade de entrada está desativada. Isso permite a geração de paridade de saída sem erros de paridade de entrada.
ISTRIP
Caracteres de Listras. Se esta sinalização for definida, caracteres de entrada válidos são primeiramente despotados para 7 bits. Caso contrário, todos os 8 bits são processados.
INLCR
Mapeia um caractere de nova linha (NL) a um retorno de carro (CR) na entrada. Se esta sinalização for definida, um caractere NL recebido é traduzido em um caractere CR.
IGNCR
Ignora o caráter CR. Se esta sinalização for definida, um caractere de CR recebido é ignorado e não lido.
ICRNL
Mapeia um caractere CR para o caractere NL na entrada. Se a sinalização ICRNL estiver configurada e a sinalização IGNCR não for definida, um caractere de CR recebido será traduzido em um caractere NL.
IUCLC
Mapeia maiúsculas para minúsculas na entrada. Se esta sinalização for definida, um caractere maiústico recebido, caracteres alfabéticos é traduzido para o caractere minústico correspondente.
IXON
Permite iniciar e parar o controle de saída. Se esta sinalização for definida, um caractere STOP recebido suspende a saída e um caractere START recebido reinicia a saída. Quando a sinalização IXON é definida, os caracteres START e STOP não são lidos, mas meramente executam funções de controle de fluxo. Quando a sinalização IXON não é definida, os caracteres START e STOP são lidos.
IXANY
Permite que qualquer caractere reinicie a saída. Se esta sinalização for definida, qualquer caractere de entrada reinicia a saída que foi suspensa.
IXOFF
Habilita o controle de entrada de start-stop. Se esta sinalização for definida, o sistema transmite um caractere STOP quando a fila de entrada estiver quase cheia e um caractere START quando houver entrada suficiente foi lido que a fila está quase vazia novamente.
IMAXBEL
Ecoa o caractere ASCII BEL se o fluxo de entrada transborda. A entrada adicional não é armazenada, mas entrada já presente no fluxo de entrada não é perdida. Se esta sinalização não for definida, nenhum caractere BEL será ecoado; a entrada na fila de entrada é descartada se o fluxo de entrada transbordar. Essa função também requer que o bit IEXTEN seja configurado.
c_oflag
Especifica como o sistema trata a saída. O valor inicial de controle de saída é "todos os bits claros." Os modos de saída possíveis são:
OPOST
Saída de pós-processos. Se esta sinalização for definida, caracteres de saída são pós-processados conforme indicado pelas bandeiras restantes. Caso contrário, os caracteres são transmitidos sem alterações.
OLCUC
Mapeia minúsculas para maiús-saída na saída. Se esta sinalização for definida, um caractere alfabético minústico é transmitido como o caractere maiústico correspondente. Esta sinalização é frequentemente usada em conjunto com o modo de entrada IUCLC .
ONLCR
Mapas NL para CR-NL na saída. Se esta sinalização for definida, o caractere NL é transmitido como o par de caracteres CR-NL.
OCRNL
Mapas CR para NL na saída. Se esta sinalização for definida, o caractere CR é transmitido como o caractere NL.
ONOCR
Indica ausência de saída CR na coluna 0. Se esta sinalização for definida, nenhum caractere CR é transmitido quando na coluna 0 (primeira posição).
ONLRET
NL desempenha função CR. Se esta sinalização for definida, o caractere NL é assumido para fazer a função de retorno de carruagem. O ponteiro da coluna é configurado para 0, e o atraso especificado para retorno de carro é usado. Se nem o ONLCR, OCRNL, ONOCR, nem ONLRET flag for configurado, o caractere NL será assumido para fazer a função de alimentação de linha apenas. O ponteiro da coluna permanece inalterado. O ponteiro da coluna é configurado para 0 se o caractere CR for realmente transmitido.

Os bits de atraso especificam por quanto tempo uma transmissão pára para permitir o movimento mecânico ou outro quando determinados caracteres são enviados para o terminal. Os atrasos reais dependem da velocidade de linha e da carga do sistema.

OFILL
Usa caracteres de preenchimento por atraso. Se esta sinalização for definida, os caracteres de preenchimento são transmitidos por um atraso em vez de um atraso cronomeado. Isso é útil para terminais de alta taxa de baud que precisam apenas de um atraso mínimo.
OFDEL
Se esta sinalização for definida, o caractere de preenchimento será DEL. Se esta sinalização não for definida, o caractere de preenchimento será NULL.
NLDLY
Seleciona os atrasos de caracteres de nova linha. Esta é a máscara a usar antes de comparar a NL0 e NL1:
NL0
Especifica sem atraso.
NL1
Especifica um atraso de aproximadamente 0.10 segundos. Se a sinalização ONLRET for definida, os atrasos de retorno de vagão são usados em vez dos atrasos de nova linha. Se a sinalização OFILL for definida, dois caracteres de preenchimento serão transmitidos.
CRDLY
Seleciona os atrasos de retorno de carruagem. Esta é a máscara a usar antes de comparar a CR0, CR1, CR2e CR3:
CR0
Especifica sem atraso.
CR1
Especifica que o atraso é dependente da posição da coluna atual. Se a sinalização OFILL for definida, esse atraso transmite dois caracteres de preenchimento.
CR2
Especifica um atraso de aproximadamente 0.10 segundos. Se a sinalização OFILL for definida, esse atraso transmite quatro caracteres de preenchimento.
CR3
Especifica um atraso de aproximadamente 0.15 segundos.
TABDLY
Seleciona os atrasos na guia horizontal. Esta é a máscara a usar antes de comparar a TAB0, TAB1, TAB2e TAB3. Se a sinalização OFILL for definida, qualquer um desses atrasos (exceto TAB3) transmitem dois caracteres de preenchimento.
TAB0
Especifica sem atraso.
TAB1
Especifica que o atraso é dependente da posição da coluna atual. Se a sinalização OFILL for definida, dois caracteres de preenchimento serão transmitidos.
TAB2
Especifica um atraso de aproximadamente 0.10 segundos.
TAB3
Especifica que as guias devem ser expandidas em espaços.
BSDLY
Seleciona os atrasos do backspace. Esta é a máscara a usar antes de comparar a BS0 e BS1:
BS0
Especifica sem atraso.
BS1
Especifica um atraso de aproximadamente 0.05 segundos. Se a sinalização OFILL estiver configurada, esse atraso transmite um caractere de preenchimento.
VTDLY
Seleciona os atrasos na guia vertical. Esta é a máscara a usar antes de comparar a VT0 e VT1:
VT0
Especifica sem atraso.
VT1
Especifica um atraso de aproximadamente 2 seconds minutos.
FFDLY
Seleciona os atrasos de alimentação de forma. Esta é a máscara a usar antes de comparar a FF0 e FF1:
FF0
Especifica sem atraso.
FF1
Especifica um atraso de aproximadamente 2 seconds minutos.
c_cflag
Descreve o controle de hardware do terminal. Além dos modos básicos de controle, este campo utiliza os seguintes caracteres de controle:
CBAUD
Especifica taxa de baud. Esses bits especificam a taxa de baud para uma conexão. Para qualquer hardware em particular, mudanças de velocidade impossíveis são ignoradas.
B50
50 bauds.
B75
75 bauds.
B110
110 bauds.
B134
134.5 baud.
B150
150 bauds.
B200
200 bauds.
B300
300 bauds.
B600
600 bauds.
B1200
1200 bauds.
B1800
1800 bauds.
B2400
2400 bauds.
B4800
4800 bauds.
B9600
9600 bauds.
B19200
19.200 bauds.
B38400
38.400 bauds.
EXTA
Externo A.
EXTB
Externo B.
CSIZE
Especifica o tamanho do caractere. Esses bits especificam o tamanho do caractere, em bits, para ambos transmitir e receber operações. O tamanho do caractere não inclui o bit de paridade, se um for usado:
CS5
5 bits
CS6
6 bits
CS7
7 bits
CS8
8 bits.
CSTOPB
Especifica número de bits de parada. Se esta sinalização for definida, 2 bits de parada são enviados; caso contrário, apenas 1 bit de parada é enviado.
CREAD
Possibilita o receptor. Se esta sinalização for definida, o receptor será ativado. Caso contrário, caracteres não são recebidos.
PARENB
Possibilita a paridade. Se esta sinalização for definida, a geração e detecção de paridade é ativada e um bit de paridade é adicionado a cada caractere.
PARODD
Especifica paridade Ímpar. Se a paridade estiver ativada, a sinalização PARODD especifica paridade ímpar se configurado. Se a paridade estiver ativada e a sinalização PARODD não for definida, mesmo a paridade é usada.
HUPCL
Hangs sobe em último fechamento. Se esta sinalização for definida, a linha será desconectada quando o último processo fechar a linha ou quando o processo for finalizado (quando o sinal ` data terminal pronto ' baixar).
CLOCAL
Especifica uma linha local. Se esta sinalização for definida, a linha é assumida para ter uma conexão local, direta, sem controle de modem. Se não for definido, o controle de modem (dial-up) é assumido.
CIBAUD
Especifica a taxa de baud de entrada se diferente da taxa de saída.
PAREXT
Especifica paridade estendida para a paridade de marca e de espaço.
c_lflag
Controla várias funções do terminal. O valor inicial depois de um aberto é "todos os bits claros." Além dos modos básicos, este campo utiliza os seguintes símbolos de nome da máscara:
ISIG
Ativa sinais. Se esta sinalização for definida, cada caractere de entrada é verificado em relação aos caracteres de controle especial INTR, QUIT, SUSP e DSUSP. Se um caractere de entrada corresponde a um destes caracteres de controle, a função associada a esse caractere é realizada. Se a sinalização ISIG não for definida, a verificação não será feita.
ICANON
Possibilita a entrada canônica. Se esta sinalização for definida, ela se transforma em processamento canônico, que possibilita as funções de apagar e kill editar, bem como a montagem de caracteres de entrada em linhas delimitadas por NL, EOF e caracteres EOL. Se a sinalização ICANON não for definida, os pedidos de leitura são satisfeitos diretamente na fila de entrada. Nesse caso, um pedido de leitura não fica satisfeito até que uma das seguintes condições seja atendida:
  • O número mínimo de caracteres especificados por MIN são recebidos.
  • O valor de tempo limite especificado por TEMPO expirou desde que o último caractere foi recebido. Isso permite que bursts de entrada sejam lidos, enquanto ainda permite a entrada de caracteres únicos.

Os valores MIN e TEMPO são armazenados nas posições para os caracteres EOF e EOL, respectivamente. Os valores de caracteres de MIN e TEMPO são convertidos em seus equivalentes ascii para obter o valor numérico. O valor de tempo representa décimos de segundos.

XCASE
Possibilita a apresentação de maiúsculas e minúsculas canonicais. Se esta sinalização for configurada juntamente com a sinalização ICANON , uma letra maiússona (ou a letra maiússona traduzida para minúsculas pelo modo de entrada IUCLC ) é aceita na entrada precedendo-a com um caractere \ (backslash). A saída é então também precedida por um caráter backslash. Neste modo, a saída gera e a entrada aceita as seguintes seqüências de escape:
Para
Use o
(grave)
\ `
|
\ !
~
\ ^
{
\ (
}
\ )
\
\ \

Por exemplo, A é entrada como\a, \n como\\n, e \N como\\\n.

NOFLSH
Desativa a flushing da fila. Se esta sinalização for definida, o flushing normal das filas de entrada e saída associadas aos caracteres INTR, QUIT e SUSP não é feito.
FLUSHO
Fluste a saída. Quando este bit é configurado digitando-se o caractere FLUSH, dados gravados no terminal são descartados. Um terminal pode cancelar o efeito da digitação do caractere FLUSH clareando este bit.
PENDIN
Reimpressões de entrada pendente. Se esta sinalização for configurada, qualquer entrada que esteja pendente após um switch de raw para o modo canonical for re-input na próxima vez que uma operação de leitura se torna pendente ou a próxima entrada de tempo chega. A bandeira PENDIN é um bit de estado interno.
IEXTEN
Possibilita funções estendidas (implementation-definidas) a serem reconhecidas a partir dos dados de entrada. Se esta sinalização não for definida, funções definidas por implementação não são reconhecidas, e os caracteres de entrada correspondentes são processados conforme descrito para as bandeiras ICANON, ISIG, IXONe IXOFF . O reconhecimento dos seguintes caracteres de controle especial requer a sinalização IEXTEN a ser definida:
  • VEOL2
  • VDSUSP
  • REIMPRESSÃO
  • VDISCRD
  • VWERSE
  • VLNEXT

As funções associadas aos bits a seguir também requerem a sinalização IEXTEN a ser definida:

  • IMAXBEL
  • ECHOKE
  • ECHOPRT
  • ECHOCTL
TOSTOP
Envia um sinal SIGTTOU quando um processo em um grupo de processos de background tenta escrever para o seu terminal de controle. O sinal SIGTTOU impede os membros do grupo de processos.
Eco
Ativa eco. Se esta sinalização for definida, os caracteres são ecoados como são recebidos.

Quando o ICANON é configurado, as seguintes funções de eco também são possíveis:

ECHOE
Ecoa o caractere de apagamento como Backspace-Space-Backspace. Se as sinalizações ECHO e ECHOE estiverem ambas definidas e a sinalização ECHOPRT não for definida, os caracteres ERASE e WERASE são ecoados como uma ou mais sequências ASCII Backspace-Space-Backspace, que limpa os últimos caracteres da tela.
ECHOPRT
Se as bandeiras ECHO e ECHOPRT estiverem ambas definidas, o primeiro caractere ERASE e WERASE em uma sequência são ecoados como um \ (backslash), seguido pelos caracteres que estão sendo apagados. Os caracteres subsequentes ERASE e WERASE ecoam os caracteres sendo apagados, em ordem inversa. O próximo caractere não erase faz com que um / (slash) seja digitado antes que o caractere nonerase seja ecoado. Essa função também requer que o bit IEXTEN seja configurado.
ECHOKE
Backspace-Space-Backspace linha inteira on line kill. Se esta sinalização for definida, o caractere kill é ecoado apagando toda a linha da tela (usando o mecanismo selecionado pelas bandeiras ECHOE e ECHOPRT ). Essa função também requer que a sinalização IEXTEN seja definida.
ECHOK
Ecoa o personagem NL após matar. Se a sinalização ECHOK estiver configurada e a sinalização ECHOKE não for definida, o caractere NL será ecoado após o caractere de kill ser recebido. Isso enfatiza que a linha é excluída.
ECHONL
Ecoa o personagem NL. Se a sinalização ECHONL for definida, o caractere NL será ecoado mesmo se a sinalização ECHO não for definida. Isto é útil para terminais que são configurados para "eco local" (também chamado de "half duplex").
ECHOCTL
Ecoa caracteres de controle (com códigos entre 0 e 37 octal) como ^X, em que X é o caractere que resulta da adição de 100 octal ao código do caractere de controle. (Por exemplo, o caractere com código octal 1 é ecoado como^A). O caractere ASCII DEL (código 177 octal) é ecoado como^?. Os caracteres ASCII TAB, NL e START não estão ecoados. A menos que fugidos (precedidos por uma barra inversa), o caráter EOF não é ecoado. Como resultado, porque EOT é o caractere EOF padrão, terminais que respondo a EOT são impedidos de pendurar. Essa função também requer que a sinalização IEXTEN seja definida.
c_cc
Especifica uma matriz que define os caracteres de controle especial. As posições relativas e os valores iniciais para cada função são:
VINTR
Indexa o caractere especial INTR (Ctrl-c), que é reconhecido na entrada se a sinalização ISIG estiver definida. O caractere INTR gera um sinal SIGINT , que é enviado para todos os processos no grupo de processo de primeiro plano para o qual o terminal é o terminal de controle. Se a sinalização ISIG for definida, o caractere INTR será descartado quando processado.
VQUIT
Indexa o caractere especial QUIT (Ctrl-\), que é reconhecido na entrada se a sinalização ISIG estiver definida. O caractere QUIT gera um sinal SIGQUIT , que é enviado para todos os processos no grupo de processos de primeiro plano para o qual o terminal é o terminal de controle, e grava um arquivo de imagem núcleo no diretório de trabalho atual. Se a sinalização ISIG for definida, o caractere QUIT será descartado quando processado.
VERASE
Indexa o caractere especial da ERASE (Backspace), que é reconhecido na entrada se a sinalização ICANON estiver definida. O caráter ERASE não se apaga além do início da linha como delimitado por um caractere NL, EOL, EOF ou EOL2 . Se a sinalização ICANON for definida, o caractere ERASE será descartado quando processado.
VKILL
Indexa o caractere especial KILL (Ctrl-u), que é reconhecido na entrada se a sinalização ICANON estiver definida. O caractere KILL exclui a linha inteira, conforme delimitado por um caractere NL, EOL, EOF ou EOL2 . Se a sinalização ICANON for definida, o caractere KILL será descartado quando processado.
VEOF
Indexa o caractere especial EOF (Ctrl-d), que é reconhecido na entrada se a sinalização ICANON estiver definida. Quando o EOF é recebido, todos os caracteres que esperam para serem lidos são imediatamente passados para o processo, sem esperar por uma nova linha, e o EOF é descartado. Se o EOF for recebido no início de uma linha (nenhum caractere está esperando), uma contagem de caracteres de zero é devolvida a partir da leitura, indicando um fim-de-arquivo. Se a sinalização ICANON for definida, o caractere EOF é descartado quando processado.
VEOL
Indexa o caractere especial EOL (Ctrl-@ ou ASCII NULL), que é reconhecido na entrada se a sinalização ICANON estiver definida. O EOL é um delimitador de linha adicional, como NL, e normalmente não é usado.
VEOL2
Indexa o caractere especial EOL2 (Ctrl-@ ou ASCII NULL), que é reconhecido na entrada se as bandeiras ICANON e IEXTEN estiverem definidas. EOL2 é um delimitador de linha adicional, como NL, e normalmente não é usado.
VSTART
Indexa o caractere especial START (Ctrl-q), que é reconhecido na entrada se o sinalizador IXON estiver configurado, e gerado na saída se o sinalizador IXOFF estiver configurado. O caráter START pode ser usado para retomar a saída que foi suspensa por um caractere STOP. Se a sinalização IXON for definida, o caractere START será descartado quando processado. Enquanto a saída não é suspensa, os caracteres START são ignorados e não lidos. VSTRT é um alias para VSTART.
VSTOP
Indexa o caractere especial STOP (Ctrl-s), que é reconhecido na entrada se o sinalizador IXON estiver configurado, e gerado na saída se o sinalizador IXOFF estiver configurado. O caractere STOP pode ser usado para com terminais para evitar que a saída desapareça antes que ela possa ser lida. Se a sinalização IXON for definida, o caractere STOP será descartado quando processado. Enquanto a saída é suspensa, os caracteres STOP são ignorados e não lidos.
VSUSP
Indexa o caractere especial do SUSP (Ctrl-z), que é reconhecido na entrada se o sinalizador ISIG estiver configurado. O caractere SUSP gera um sinal SIGTSTP , que é enviado para todos os processos no grupo de processo de primeiro plano para o qual o terminal é o terminal de controle. Se a sinalização ISIG for definida, o caractere SUSP será descartado quando processado.
VDSUSP
Indexa o caractere especial DSUSP (Ctrl-y), que é reconhecido na entrada se as sinalizadores ISIG e IEXTEN estiverem definidas. O caractere DSUSP gera um sinal SIGTSTP como o caractere SUSP faz, mas o sinal é enviado quando um processo em grupo de processo de primeiro plano tenta ler o caractere DSUSP, em vez de quando o DSUSP é digitado. Se as bandeiras ISIG e IEXTEN estiverem definidas, o caractere DSUSP será descartado quando processado.
REIMPRESSÃO
Indexa o caractere especial REPRINT (Ctrl-r), que é reconhecido na entrada se as sinalizadores ICANON e IEXTEN estiverem definidas. O caractere REPRINT reprime todos os caracteres, precedidos por uma nova linha, que não foram lidos. Se as bandeiras ICANON e IEXTEN estiverem definidas, o caractere REPRINT será descartado quando processado.
VDISCRD
Indexa o caractere especial DISCARD (Ctrl-o), que é reconhecido na entrada se as sinalizadores ICANON e IEXTEN estiverem definidas. O caractere DISCARD faz com que a saída subsequente seja descartada até que outro caractere DISCARD seja digitado, mais entrada chega ou a condição é liberada por um programa. Se as bandeiras ICANON e IEXTEN estiverem definidas, o caractere DISCARD é descartado quando processado.
VWERSE
Indexa o caractere especial WERASE (Ctrl-w), que é reconhecido na entrada se as sinalizadores ICANON e IEXTEN estiverem definidas. O caractere WERASE faz com que a palavra anterior seja apagada. O caractere WERASE não se apaga além do início da linha como delimitado por um caractere NL, EOL, EOF ou EOL2 . Se as bandeiras ICANON e IEXTEN estiverem definidas, o caractere WERASE é descartado quando processado.
VLNEXT
Indexa o caractere especial LNEXT (literal próximo) especial (Ctrl-v), que é reconhecido na entrada se as bandeiras ICANON e IEXTEN estiverem definidas. O caractere LNEXT faz com que o significado especial do próximo caractere seja ignorado para que os caracteres possam ser input sem serem interpretados pelo sistema. Se as bandeiras ICANON, ECHOe IEXTEN estiverem definidas, o caractere LNEXT é substituído por uma sequência de ^ -Backspace quando processado.
VMIN
Indexa o valor MIN , que não é um caractere especial. O uso do valor MIN é descrito na discussão de processamento de entrada de modo não canônico em "Disciplina de Linha de ldterm" em Conceitos Gerais de Programação: Programas de escrita e depuração.
VTIME
Indexa o valor TEMPO , que não é um caractere especial. O uso do valor TEMPO é descrito na discussão de processamento de entrada de modo não canônico em "Disciplina de Linha de ldterm" em Conceitos Gerais de Programação: Programas de escrita e depuração.

Os valores de caracteres para os seguintes caracteres de controle podem ser alterados:

Item Descrição Valor Valor
INTR EOF PARE DISCARD
ENCERRAR EOL SUSP WERASE
ERASE EOL2 DSUSP LNEXT
kill INICIE REIMPRESSÃO REIMPRESSÃO

Os caracteres ERASE, KILL e EOF também podem ser escapados (precedidos por uma barra invernada) para que nenhum processamento especial seja feito.

Definições De Valor Do Parâmetro

Os valores a seguir para o parâmetro OptionalActions da sub-rotina tcsetattr também são definidos no arquivo termios.h :

Item Descrição
TCSANOW Estabelece imediatamente os parâmetros associados ao terminal a partir da estrutura termério referenciada.
TCSADRAIN Aguarda-se até que toda a saída gravada no arquivo objeto tenha sido transmitida antes de configurar os parâmetros do terminal a partir da estrutura termério .
TCSAFLUSH Aguarda até que toda a saída gravada no arquivo do objeto tenha sido transmitida e até que toda entrada recebida mas não lida tenha sido descartada antes de configurar os parâmetros do terminal a partir da estrutura termério .

Os valores a seguir para o parâmetro QueueSelector da sub-rotina tcflush também são definidos nesse arquivo de cabeçalho:

Item Descrição
TCIFLUSH Flushes dados que são recebidos mas não lidos.
TCOFLUSH Flushes dados que são escritos mas não transmitidos.
TCIOFLUSH Flushes dados que são recebidos mas não lidos assim como dados que são escritos mas não transmitidos.

Os valores a seguir para o parâmetro Action da sub-rotina tcflow também são definidos no arquivo termios.h :

Item Descrição
TCOOFF Suspende a saída de dados pelo arquivo objeto denominado no subbroutine tcflow .
TCOON Reinicia a saída de dados que foi suspensa pela ação TCOOFF .
TCIOFF Transmite um caractere de parada para interromper a transmissão de dados pelo dispositivo terminal.
TCION Transmite um caractere de início para iniciar ou reiniciar a transmissão de dados pelo dispositivo do terminal.

Operações de Controle de Modem

As operações ioctl a seguir, usadas para controle de modem, são uma extensão para a interface de disciplina de linha POSIX . Para usar essas operações em um programa, o programa deve conter uma instrução #include para o arquivo ioctl.h

Item Descrição
TIOCMBIS O argumento para este comando é um ponteiro para um número inteiro que liga as linhas de controle especificadas pelo valor de máscara inteiro. Nenhuma outra linha de controle é afetada.
TIOCMBIC O argumento para este comando é um ponteiro para um inteiro que desliga as linhas de controle especificadas pelo valor de máscara inteiro. Nenhuma outra linha de controle é afetada.
TIOCMGET Obtém todos os bits do modem. O argumento para este comando é um ponteiro para um inteiro onde o estado atual das linhas de status do modem é armazenado. Quais as linhas de controle de status e modem são suportadas depende das capacidades do hardware e do driver de dispositivo do hardware.
TIOCMSET Configura todos os bits do modem. O argumento para este comando é um ponteiro para um inteiro contendo um novo conjunto de bits de modem. Os bits de controle do modem usam esses bits para ligar ou desligar as linhas de controle do modem, dependendo se o bit para essa linha está definido ou claro. Quaisquer bits de status do modem são ignorados. As linhas de controle real do modem que são suportadas dependem das capacidades do hardware e do driver de dispositivo do hardware.

O inteiro especifica uma das seguintes linhas de controle de modem ou status em que o comando modem controle ioctl opera:

TIOCM_LE
Ativação de linha
TIOCM_DTR
Terminal de dados pronto
TIOCM_RTS
Pedido de envio
TIOCM_ST
Transmissão secundária
TIOCM_SR
Recebimento secundário
TIOCM_CTS
Limpar para enviar
TIOCM_CAR
Detecção de operadora
TIOCM_CD
TIOCM_CAR
TIOCM_RNG
Em Anel
TIOCM_RI
TIOCM_RNG
TIOCM_DSR
Conjunto de dados pronto.
TIOCMIWAIT Aguarde a linha de status do modem para alterar o status.
O argumento é um ponteiro para um valor de máscara de número inteiro especificando a (s) linha (s) de status do modem (s) em que esperar por uma mudança de status, e pode consistir em um ou mais dos seguintes valores:
TIOCM_CTS
Limpar para enviar
TIOCM_CAR
Detecção de operadora
TIOCM_CD
TIOCM_CAR
TIOCM_RNG
Em Anel
TIOCM_RI
TIOCM_RNG
TIOCM_DSR
Conjunto de dados pronto.
Os blocos de solicitação até que uma das linhas especificadas altere o status, em seguida, retornam para o responsável pela chamada. Note que este ioctl bloqueia mesmo que O_NDELAY ou O_NONBLOCK esteja configurado.

Se nenhuma das linhas especificadas alterar o status, o ioctl pode bloquear indefinidamente, então ele deve ser usado em conjunto com um temporizador alarme () .

Se TIOCM_RNG ou TIOCM_RI for especificado, a transição será relatada apenas quando as transições de linha de status de on para off devido a restrições de hardware.
Nota: Operação correta deste ioctl depende de cabeamento correto.