TERMIOS(3) | Manual do Programador Linux | TERMIOS(3) |
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
#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 );
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:
contantes de flag c_oflag:
constantes de flag c_cflag:
constantes de flag c_lflag:
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:
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:
tcflow() suspende a transmissão ou a recepção de dados no objeto referido por fd, dependendo do valor da ação:
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 B230400A 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.
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:
RUBENS DE JESUS NOGUEIRA <darkseid99@usa.net> (tradução) XXXXXX XX XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx> (revisão)
2 de setembro de 1995 | Linux |