Provided by: manpages-pt-dev_20040726-2_all bug

NOME

       termios,  tcgetattr,  tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow,
       cfmakeraw,   cfgetospeed,   cfgetispeed,   cfsetispeed,    cfsetospeed,
       tcgetpgrp,  tcsetpgrp - obtém e seta atributos de terminal, controle de
       linha, obtém e seta taxa de bauds, obtém e  seta  o  ID  de  grupos  de
       processos em primeiro plano

SINOPSE

       #include <termios.h>
       #include <unistd.h>

       int tcgetattr ( int fd, struct termios *termios_p );

       int tcsetattr ( int fd, int optional_actions, struct termios *termios_p
       );

       int tcsendbreak ( int fd, int duration );

       int tcdrain ( int fd );

       int tcflush ( int fd, int queue_selector );

       int tcflow ( int fd, int action );

       int cfmakeraw ( struct termios *termios_p );

       speed_t cfgetospeed ( struct termios *termios_p );

       int cfsetospeed ( struct termios *termios_p, speed_t speed );

       speed_t cfgetispeed ( struct termios *termios_p );

       int cfsetispeed ( struct termios *termios_p, speed_t speed );

       pid_t tcgetpgrp ( int fd );

       int tcsetpgrp ( int fd, pid_t pgrpid );

DESCRIÇÃO

       As funções termios descrevem uma interface  de  terminal  geral  que  é
       fornecida para controlar portas de comunicação assíncronas.

       Muitas  das  funções descritas aqui têm um argumento termios_p que é um
       ponteiro para uma estrutura termios. Esta estrutura contém os seguintes
       membros:

              tcflag_t c_iflag;      /* modos de entrada */
              tcflag_t c_oflag;      /* modos de saída */
              tcflag_t c_cflag;      /* modos de controle */
              tcflag_t c_lflag;      /* modos locais */
              cc_t c_cc[NCCS];       /* caracteres de controle */

       constantes de flag c_iflag:

       IGNBRK ignora condições de BREAK na entrada

       BRKINT Se  IGNBRK não estiver setado, gera SIGINT na condição de BREAK,
              senão lê o BREAK como o caractere \0.

       IGNPAR ignora erros de enquadramento e paridade.

       PARMRK se IGNPAR não estiver setado, prefixa um caractere com  um  erro
              de  paridade  ou  um  erro  de enquadramento com \377 \0. Se nem
              IGNPAR nem PARMRK são setados, lê um caractere com  um  erro  de
              paridade ou enquadramento como \0.

       INPCK  habilita verificação de paridade na entrada

       ISTRIP corta o oitavo bit

       INLCR  traduz NL para CR na entrada

       IGNCR  ignora retorno de carro na entrada

       ICRNL  traduz  retorno de carro para nova linha na entrada (a menos que
              IGNCR seja setado)

       IUCLC  mapeia caracteres maiúsculos para minúsculos na entrada

       IXON   habilita controle de fluxo XON/XOFF na entrada

       IXANY  habilita qualquer caractere para reiniciar saída

       IXOFF  habilita controle de fluxo XON/XOFF na entrada

       IMAXBEL
              aciona sinal sonoro quando a fila está cheia

       contantes de flag c_oflag:

       OPOST  habilita processamento de saída definida pela implementação

       OLCUC  mapeia caracteres minúsculos para maiúsculos na saída

       ONLCR  mapeia NL para CR-NL na saída

       OCRNL  mapeia CR para NL na saída

       ONOCR  não envia CR na coluna 0

       ONLRET não envia CR

       OFILL  envia caracteres de preenchimento para um atraso, em vez de usar
              um atraso por tempo

       OFDEL  caractere  de  preenchimento  é  o  ASCII  DEL. Se não setado, o
              caractere de preenchimento é o ASCII NUL

       NLDLY  máscara de atraso de nova linha. Valores são NL0 e NL1.

       CRDLY  máscara de atraso de retorno de carro.  Valores  são  CR0,  CR1,
              CR2, ou CR3.

       TABDLY máscara  de  atraso  de  tabulação horizontal. Valores são TAB0,
              TAB1,  TAB2,  TAB3,  ou  XTABS.   Um  valor  de  XTABS   expande
              tabulações  para  espaços  (com paradas de tabulação a cada oito
              colunas).

       BSDLY  máscara de atraso de ’backspace’. Valores são BS0 ou BS1.

       VTDLY  máscara de atraso de tabulação vertical. Valores são VT0 ou VT1.

       FFDLY  máscara  de atraso de alimentação de formulário. Valores são FF0
              ou FF1.

       constantes de flag c_cflag:

       CSIZE  máscara de tamanho de caractere. Valores são CS5, CS6,  CS7,  ou
              CS8.

       CSTOPB seta dois bits de parada, em vez de um.

       CREAD  habilita receptor.

       PARENB habilita  geração de paridade na saída e verificação de paridade
              para a entrada.

       PARODD paridade para entrada e saída é ímpar.

       HUPCL  linhas de controle de modem mais  baixas  depois  que  o  último
              processo fecha o dispositivo (põe no gancho).

       CLOCAL ignora linhas de controe do modem

       CIBAUD máscaras para velocidades de entrada (não usados).

       CRTSCTS
              controle de fluxo.

       constantes de flag c_lflag:

       ISIG   quando qualquer um dos caracteres INTR, QUIT, SUSP, ou DSUSP são
              recebidos, gera o sinal correspondente.

       ICANON habilita modo canônico. Isto habilita  os  caracteres  especiais
              EOF,  EOL,  EOL2,  ERASE,  KILL,  REPRINT,  STATUS,  e WERASE, e
              armazena por linha.

       XCASE  se ICANON também é setado, o terminal é  somente  maiúsculo.   A
              entrada  é  convertida  para  minúsculas, exceto para caracteres
              precedidos  por  \.   Na  saída,   caracteres   maiúsculos   são
              precedidos  por  \  e caracteres minúsculos são convertidos para
              maiúsculos.

       ECHO   ecoa caracteres de entrada.

       ECHOE  se ICANON também é setado, o caractere ERASE apaga  o  caractere
              de entrada precedente, e WERASE apaga a palavra precedente.

       ECHOK  se  ICANON  também  é  setado,  o  caractere  KILL apaga a linha
              corrente.

       ECHONL se ICANON também é setado, ecoa o caractere NL mesmo se ECHO não
              está setado.

       ECHOCTL
              se  ECHO também é setado, os sinais de controle ASCII diferentes
              de TAB, NL, START, e STOP são ecoados no formato ^X, onde X é  o
              caractere  com  código ASCII 0x40 maior que o sinal de controle.
              Por exemplo, o caractere 0x08 (BS) é ecoado como ^H.

       ECHOPRT
              se  ICANON  e  IECHO  também  são  setados,  os  caracteres  são
              impressos conforme eles estão sendo apagados.

       ECHOKE se ICANON também é setado, KILL é ecoado pelo apagamento de cada
              caractere na linha, como especificado por ECHOE e ECHOPRT.

       FLUSHO saída está sendo esvaziada. Este flag é invertido pela digitação
              do caractere DISCARD.

       NOFLSH desabilita  o  esvaziamento  das filas de entrada e saída quando
              são gerados os sinais SIGINT e SIGQUIT, e o esvaziamento da fila
              de entrada quando é gerado o sinal SIGSUSP.

       TOSTOP envia o sinal SIGTTOU para o grupo de processo de um processo em
              segundo plano que tenta escrever no seu terminal de controle.

       PENDIN todos os caracteres na fila de entrada são reimpressos quando  o
              próximo  caractere  é  lido.  (bash manipula o buffer de teclado
              desta forma.)

       IEXTEN habilita processamento de entrada definida por implementação.

       tcgetattr() obtém os parâmetros associados com o objeto referido por fd
       e  armazena-os  na  estrutura  termios referenciada por termios_p. Esta
       função pode ser invocada por um processo em segundo  plano;  porém,  os
       atributos  do  terminal  podem  ser  alterados  subsequentemente por um
       processo em primeiro plano.

       tcsetattr() seta os parâmetros associados com o terminal (a menos que o
       suporte  seja  requerido  por  parte  do  hardware  base  que  não está
       disponível) a partir  da  estrutura  termios  referida  por  termios_p.
       optional_actions especifica quando as alterações têm efeito:

       TCSANOW
              a mudança ocorre imediatamente.

       TCSADRAIN
              a  mudança ocorre depois de todas as saídas escritas em fd terem
              sido  transmitidas.  Esta  função  deve  ser  usada  ao  alterar
              parâmetros que afetam a saída.

       TCSAFLUSH
              a  mudança  ocorre depois que todas as saídas escritas no objeto
              referenciado por fd foram  transmitidas,  e  todas  as  entradas
              foram  recebidas  mas  não  lidas  serão descartadas antes que a
              mudança seja feita.

       tcsendbreak() transmite um fluxo contínuo de bits  com  valor  zero  de
       duração específica, se o terminal estiver usando transmissão assíncrona
       de dados seriais. Se a durao é zero, ele transmite bits de valor zero
       por pelo menos 0,25 segundos, e não mais que 0,5 segundos. Se a durao
       não é zero, ele envia bits de valor zero por duration*N segundos,  onde
       N é pelo menos 0,25, e não mais que 0,5.

       Se  o terminal não está usando transmissão assíncrona de dados seriais,
       tcsendbreak() retorna sem realizar nenhuma ação.

       tcdrain() espera até que toda a saída escrita para  o  objeto  referido
       por fd tenha sido transmitida.

       tcflush() descarta dados escritos para o objeto referido por fd mas não
       transmitidos, ou dados recebidos mas não lidos, dependendo do valor  de
       queue_selector:

       TCIFLUSH
              esvazia os dados recebidos mas não lidos.

       TCOFLUSH
              esvazi os dados escritos mas não transmitidos.

       TCIOFLUSH
              esvazia  os  dados  recebidos mas não lidos, e os dados escritos
              mas não transmitidos.

       tcflow() suspende a transmissão  ou  a  recepção  de  dados  no  objeto
       referido por fd, dependendo do valor da ao:

       TCOOFF suspende saída.

       TCOON  reinicia saída suspensa.

       TCIOFF transmite  um caractere STOP, que pára a transmissão de dados do
              dispositivo de terminal para o sistema.

       TCION  transmite um caractere START, que inicia a transmissão de  dados
              do dispositivo de terminal para o sistema.

       O  padrão  na  abertura de um arquivo de terminal é que nem a entrada e
       nem a saída são suspensas.

       As funções de taxa de bauds  são  fornecidas  para  obter  e  setar  os
       valores  das taxas de bauds de entrada e saída na estrutura termios. Os
       novos valores não têm efeito  até  que  tcsetattr()  seja  chamado  com
       sucesso.

       Configurar  a  velocidade para B0 instrui o modem para "pôr no gancho".
       A taxa de bits atual correspondente a  B38400  pode  ser  alterada  com
       setserial(8).

       As  taxas  de  bauds  de  entrada  e saída são armazenadas na estrutura
       termios.

       cfmakeraw seta os atributos do terminal como segue:
                   termios_p->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP
                                   |INLCR|IGNCR|ICRNL|IXON);
                   termios_p->c_oflag &= ~OPOST;
                   termios_p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
                   termios_p->c_cflag &= ~(CSIZE|PARENB);
                   termios_p->c_cflag |= CS8;

       cfgetospeed() retorna a taxa de bauds de saída armazenadas na estrutura
       termios apontada por termios_p.

       cfsetospeed()  seta  a  taxa  de bauds de saída armazenada na estrutura
       termios apontada por termios_p para speed, que precisa ser  uma  dessas
       constantes:
            B0
            B50
            B75
            B110
            B134
            B150
            B200
            B300
            B600
            B1200
            B1800
            B2400
            B4800
            B9600
            B19200
            B38400
            B57600
            B115200
            B230400
       A  taxa  de  bauds  zero,  B0, é usada para terminar a conexão. Se B0 é
       especificado,  as  linhas  de  controle  do  modem   não   serão   mais
       confirmados.  Normalmente,  isto  desconectará  a linha.  CBAUDEX é uma
       máscara para as velocidades além daquelas definidas em POSIX.1 (57600 e
       acima). Portanto, B57600 & CBAUDEX é diferente de zero.

       cfgetispeed()  retorna  a  taxa  de  bauds  da  entrada  armazenada  na
       estrutura termios.

       cfsetispeed() seta a taxa de bauds de entrada armazenada  na  estrutura
       termios  para  velocidade.  Se a taxa de bauds da entrada é setada para
       zero, a taxa de bauds da entrada será igual à taxa de bauds da saída.

       tcgetpgrp() retorna o ID do grupo de processo de um grupo  de  processo
       em primeiro plano, ou -1 em caso de erro.

       tcsetpgrp()  seta o ID de grupo de processo para pgrpid. pgrpid precisa
       ser o ID de um grupo de processo na mesma sessão.

VALORES DE RETORNO

       cfgetispeed()  retorna  a  taxa  de  bauds  de  entrada  armazenada  na
       estrutura termios.

       cfgetospeed()  retorna a taxa de bauds de saída armazenada na estrutura
       termios.

       tcgetpgrp() retorna o ID do grupo de processo de um grupo  de  processo
       em primeiro plano, ou -1 em caso de erro.

       Todas as outras funções retornam:

       0      em caso de sucesso.

       -1     em caso de falha e seta errno para indicar o erro.

VEJA TAMBÉM

       setserial(8)

TRADUÇÃO PARA A LÍNGUA PORTUGUESA

       RUBENS  DE  JESUS  NOGUEIRA  <darkseid99@usa.net>  (tradução) XXXXXX XX
       XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx> (revisão)