Rechercher une page de manuel
termios
Langue: es
Version: 12 Marzo 1998 (fedora - 25/11/07)
Section: 3 (Bibliothèques de fonctions)
NOMBRE
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 terminalSINOPSIS
#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 );
DESCRIPCIÓN
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 */
Constantes indicadoras c_iflag:
- IGNBRK
- no hacer caso de la condición BREAK en la entrada
- BRKINT
- si IGNBRK no está activo, generar SIGINT en caso de condición BREAK, si no leer el BREAK como el carácter \0.
- IGNPAR
- No hacer caso de errores de marco y paridad.
- PARMRK
- si IGNPAR no está activo, prefijar con \377 \0 un carácter con un error de paridad o marco. Si ni IGNPAR ni PARMRK están activos, leer un carácter con un error de paridad o marco como \0.
- INPCK
- permitir la comprobación de paridad en la entrada
- ISTRIP
- quitar o poner a cero el 8º bit
- INLCR
- traducir NL a CR en la entrada
- IGNCR
- no hacer caso del retorno de carro en la entrada
- ICRNL
- traducir retorno de carro a salto de línea en la entrada (a menos que IGNCR esté activado)
- IUCLC
- convertir letras mayúsculas a las minúsculas correspondientes en la entrada
- IXON
- activar el control de flujo XON/XOFF en la salida
- IXANY
- activar que cualquier carácter reinicie la salida
- IXOFF
- activar el control de flujo XON/XOFF en la entrada
- IMAXBEL
- hacer sonar el pitido cuando la cola de entrada esté llena
Constantes indicadoras c_oflag:
- OPOST
- activar el procesamiento definido por la implementación de la salida
- OLCUC
- convertir las letras minúsculas en las correspondientes mayúsculas en la salida
- ONLCR
- convertir NL a CR-NL en la salida
- OCRNL
- convertir CR a NL en la salida
- ONOCR
- no sacar CR en la columna 0
- ONLRET
- no sacar CR
- OFILL
- enviar caracteres de relleno para un retardo, en vez de usar un retardo de tiempo
- OFDEL
- el carácter de relleno es el ASCII DEL. Si no está activado, el carácter de relleno es el ASCII NUL
- NLDLY
- máscara de retardo del salto de línea. Los valores son NL0 y NL1.
- CRDLY
- máscara de retardo del retorno de carro. Los valores son CR0, CR1, CR2, o CR3.
- TABDLY
- máscara de retardo del tabulador horizontal. Los valores son TAB0, TAB1, TAB2, TAB3, o XTABS. Un valor de XTABS expande tabuladores a espacios (con paradas del tabulador cada 8 columnas).
- BSDLY
- máscara de retardo del espacio atrás. Los valores son BS0 o BS1.
- VTDLY
- máscara de retardo del tabulador vertical. Los valores son VT0 o VT1.
- FFDLY
- máscara de retardo del salto de página. Los valores son FF0 o FF1.
Constantes indicadoras c_cflag:
- CSIZE
- máscara de tamaño de carácter. Los valores son CS5, CS6, CS7, o CS8.
- CSTOPB
- pone dos bits de parada, en vez de uno.
- CREAD
- habilita receptor.
- PARENB
- activa la generación de paridad en la salida y comprobación de paridad para la entrada.
- PARODD
- la paridad para la entrada y la salida es impar.
- HUPCL
- las líneas de control de módem inferiores tras el último proceso cierran el dispositivo (cuelgan).
- CLOCAL
- no hace caso de las líneas de control del módem
- CIBAUD
- máscara para las velocidades de entrada (sin uso).
- CRTSCTS
- control de flujo.
Constantes indicadoras c_lflag:
- ISIG
- cuando se reciba cualquiera de los caracteres INTR, QUIT, SUSP, o DSUSP, generar la señal correspondiente.
- ICANON
- activar el modo canónico. Esto habilita los caracteres especiales EOF, EOL, EOL2, ERASE, KILL, REPRINT, STATUS, y WERASE, y búferes por líneas.
- XCASE
- si ICANON también está activo, la terminal es sólo de letras mayúsculas. La entrada se convierte a minúsculas, salvo para caracteres precedidos de \. En la salida, las letras mayúsculas salen precedidas por \ y las minúsculas convertidas en mayúsculas.
- ECHO
- muestra caracteres de entrada.
- ECHOE
- si ICANON está también activo, el carácter ERASE borra el carácter anterior de la entrada, y el WERASE borra la palabra anterior.
- ECHOK
- si ICANON también está activo, el carácter KILL borra la línea en curso.
- ECHONL
- si ICANON está también activo, muestra el carácter NL incluso si no está activado ECHO.
- ECHOCTL
- si ECHO también está activo, las señales de control ASCII distintas de TAB, NL, START y STOP, se muestran como ^X, donde X es el carácter cuyo código ASCII es 0x40 más el de la señal de control. Por ejemplo, el carácter 0x08 (BS) se muestra como ^H.
- ECHOPRT
- si ICANON y IECHO están también activos, los caracteres se muestran mientras están siendo borrados.
- ECHOKE
- si ICANON también está activo, KILL se muestra borrando cada carácter de la línea, como se especifica por ECHOE y ECHOPRT.
- FLUSHO
- la salida se está volcando al dispositivo de salida. Esta opción se cambia al teclear el carácter DISCARD.
- NOFLSH
- inhabilita el volcado de las colas de entrada y salida cuando se estén generando las señales SIGINT y SIGQUIT, y el de la cola de entrada cuando se genere la señal SIGSUSP.
- TOSTOP
- envía la señal SIGTTOU al grupo de proceso de un proceso en segundo plano que trata de escribir a su terminal controladora.
- PENDIN
- todos los caracteres de la cola de entrada se reimprimen cuando se lee el siguiente carácter (bash maneja el typeahead así.)
- IEXTEN
- habilita el procesado de entrada definido por la implementación.
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:
- TCSANOW
- el cambio ocurre inmediatamente.
- TCSADRAIN
- el cambio ocurre después de que toda la salida escrita a fd haya sido transmitida. Esta función debería emplearse cuando se cambien parámetros que afecten a la salida.
- TCSAFLUSH
- el cambio ocurre después de que toda la salida escrita al objeto referenciado por fd haya sido transmitida, y toda la entrada que se haya recibido pero no leído será descartada antes de que se haga el cambio.
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:
- TCIFLUSH
- vuelca datos recibidos pero no leídos.
- TCOFLUSH
- vuelca datos escritos pero no transmitidos.
- TCIOFLUSH
- vuelca tanto los datos recibidos pero no leídos, como los escritos pero no transmitidos.
tcflow() suspende la transmisión o recepción de datos en el objeto referido por fd, dependiendo del valor de action:
- TCOOFF
- suspende la salida.
- TCOON
- reanuda la salida suspendida.
- TCIOFF
- transmite un carácter STOP, que hace que el dispositivo de terminal deje de transmitir datos al sistema.
- TCION
- transmite un carácter START, que hace que el dispositivo de terminal empiece a transmitir datos del sistema.
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.
VALOR DEVUELTO
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:
- 0
- en caso de éxito,
- -1
- en caso de fallo, y ponen un valor en errno para indicar el error.
VÉASE TAMBIÉN
setserial(8)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre