Provided by: manpages-pt-dev_20040726-4_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 duração é zero,
       ele transmite bits de valor zero por  pelo  menos  0,25  segundos,  e  não  mais  que  0,5
       segundos.  Se  a duração 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 ação:

       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)