Section: Manual del Programador de Linux (3)
Updated: 12 Marzo 1998
Index Return to Main
Contents
termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, tcgetpgrp, tcsetpgrp - obtiene y pone atributos de la terminal, controla la línea de la terminal, obtiene y pone la velocidad de la línea, obtiene y pone la ID. de grupo de procesos en primer plano de la terminal
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 );
Las funciones termios describen una interfaz general para las terminales que sirve para controlar los puertos de comunicaciones asícronas.
Muchas de las funciones que aquí se describen poseen un argumento termios_p que es un puntero a una estructura termios. Esta estructura contiene los miembros siguientes:
tcflag_t c_iflag; /* modos de entrada */ tcflag_t c_oflag; /* modos de salida */ tcflag_t c_cflag; /* modos de control */ tcflag_t c_lflag; /* modos locales */ cc_t c_cc[NCCS]; /* caracts. de control */ </dl>
Constantes indicadoras c_iflag:
Constantes indicadoras c_oflag:
Constantes indicadoras c_cflag:
Constantes indicadoras c_lflag:
tcgetattr() obtiene los parámetros asociados con el objeto referido por fd y los guarda en la estructura termios referenciada por termios_p. Esta función puede llamarse desde un proceso en segundo plano; sin embargo, los atributos de terminal pueden ser modificados subsecuentemente por un proceso en primer plano.
tcsetattr() establece los parámetros asociados con la terminal (a menos que se requiera soporte del hardware subyacente que no esté disponible) desde la estructura termios referenciada por termios_p. optional_actions especifica cuándo los cambios tienen efecto:
tcsendbreak() transmite un flujo continuo de bits a cero durante un tiempo determinado, si la terminal emplea transmisión de datos en serie asíncrona. Si duration es cero, transmite bits ceros durante al menos ¼ de segundo, y no más de ½ segundo. Si duration no es cero, transmite bits cero durante duration*N segundos, donde N es como poco 0,25 s y no más de 0,5 s.
Si la terminal no está utilizando la transmisión asíncrona de datos en serie, tcsendbreak() regresa sin tomar ninguna acción.
tcdrain() espera hasta que toda la salida escrita al objeto referido por fd haya sido transmitida.
tcflush() descarta datos escritos al objeto referido por fd pero no transmitidos, o datos recibidos pero no leídos, dependiendo del valor de queue_selector:
tcflow() suspende la transmisión o recepción de datos en el objeto referido por fd, dependiendo del valor de action:
El comportamiento predeterminado al abrir un fichero de terminal es que ni su entrada ni su salida están suspendidas.
Las funciones de velocidad se proporcionan para obtener y poner los valores de las velocidades de entrada y salida en la estructura termios. Los nuevos valores no hacen efecto hasta que se llame con éxito a tcsetattr().
Poner la velocidad a B0 significa decirle al módem que
"cuelgue". La velocidad de bits real correspondiente a
B38400 puede alterarse con setserial(8).
Las velocidades de entrada y salida se guardan en la estructura termios.
cfmakeraw establece los atributos de terminal como sigue:
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() devuelve la velocidad de salida guardada en la estructura termios apuntada por termios_p.
cfsetospeed() establece la velocidad de salida, guardada en la estructura termios apuntada por termios_p, a speed, que debe ser una de estas constantes:
B0 B50 B75 B110 B134 B150 B200 B300 B600 B1200 B1800 B2400 B4800 B9600 B19200 B38400 B57600 B115200 B230400La velocidad de cero baudios, B0, se emplea para terminar la conexión. Si se especifica B0, las lineas de control del módem no serán reconocidas como activas más. Normalmente, esto desconectará la línea. CBAUDEX es una máscara para las velocidades tras aquéllas definidas en POSIX.1 (57600 y más). Así, B57600 & CBAUDEX es distinto de cero.
cfgetispeed() devuelve la velocidad de entrada guardada en la estructura termios.
cfsetispeed() establece la velocidad de entrada guardada en la estructura termios a speed. Si la velocidad de entrada se pone a cero, la velocidad de entrada será igual a la de salida.
tcgetpgrp() devuelve la ID. de grupo de proceso del grupo de proceso en segundo plano, ó -1 en caso de error.
tcsetpgrp() establece la ID. de grupo de proceso a pgrpid. pgrpid debe ser el ID de un grupo de proceso en la misma sesión.
cfgetispeed() devuelve la velocidad de entrada guardada en la estructura termios.
cfgetospeed() devuelve la velocidad de salida guardada en la estructura termios.
tcgetpgrp() devuelve la ID. de grupo de proceso del grupo de proceso en primer plano, ó -1 en caso de error.
Todas las otras funciones devuelven: