table of contents
other languages
other sections
TERMIOS(3) | Manual del Programador de Linux | TERMIOS(3) |
NOMBRE¶
termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed - obtiene y pone atributos de la terminal, controla la línea de la terminal, obtiene y pone la velocidad de la líneaSINOPSIS¶
#include <termios.h>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 se describen aquí poseen un argumento termios_p que es un puntero a una estructura termios. Esta estructura contiene, al menos, los siguientes miembros: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 */
- IGNBRK
- no hacer caso de la condición BREAK en la entrada.
- BRKINT
- Si IGNBRK está activa, los BREAK se ignoran. Si no está activa pero BRKINT si lo está, entonces cada BREAK hace que se vacíen las colas de entrada y de salida y, si la terminal es la terminal controladora del grupo de procesos en primer plano, hará que se envíe SIGINT a este grupo de procesos en primer plano. Cuando ni IGNBRK ni BRKINT están activos, cada BREAK se interpreta como un carácter NUL, excepto cuando está activo PARMRK, en cuyo caso se interpretan como la secuencia \377 \0 \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, interpretar 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
- (No en POSIX) Convertir letras mayúsculas a las minúsculas correspondientes en la entrada.
- IXON
- Activar el control de flujo XON/XOFF en la salida.
- IXANY
- (No en POSIX.1; XSI) Permitir que cualquier carácter reinicie la salida.
- IXOFF
- Activar el control de flujo XON/XOFF en la entrada.
- IMAXBEL
- (No en POSIX) Hacer sonar un pitido cuando la cola de entrada esté llena. Linux no implementa este bit y actúa como si siempre estuviera activo.
- OPOST
- Activar el procesamiento de salida definido por la implementación.
- OLCUC
- (No en POSIX) Convertir las letras minúsculas en las correspondientes mayúsculas en la salida.
- ONLCR
- (XSI) 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
- (No en POSIX) El carácter de relleno es el ASCII DEL (0177). 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 y CR3.
- TABDLY
- Máscara de retardo del tabulador horizontal. Los valores son TAB0, TAB1, TAB2 y TAB3 (o XTABS). Un valor de TAB3, es decir, XTABS, expande tabuladores a espacios (con paradas del tabulador cada 8 columnas).
- BSDLY
- Máscara de retardo del retroceso. Los valores son BS0 o BS1. (Nunca se ha implementado.)
- 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.
- CBAUD
- (No en POSIX) Máscara de velocidad de transferencia (4+1 bits).
- CBAUDEX
- (No en POSIX) Máscara extra de velocidad de transferencia (1 bit), incluida en CBAUD.
- CSIZE
- máscara de tamaño de carácter. Los valores son CS5, CS6, CS7 o CS8.
- CSTOPB
- Establece dos bits de parada, en vez de uno.
- CREAD
- Habilita el 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 del 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
- (No en POSIX) Máscara para las velocidades de entrada. Los valores para los bits CIBAUD son los mismos que los valores para los bits CBAUD, desplazados IBSHIFT bits a la izquierda.
- CRTSCTS
- (No en POSIX) Habilita el contro de flujo (hardware) RTS/CTS.
- 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, LNEXT, REPRINT, STATUS y WERASE y buffers para cada línea.
- XCASE
- (No en POSIX; sin soporte en Linux) 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 por \. 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 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
- (No en POSIX) 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
- (No en POSIX) Si ICANON y IECHO están también activos, los caracteres se muestran mientras están siendo borrados.
- ECHOKE
- (No en POSIX) Si ICANON también está activo, KILL se muestra borrando cada carácter de la línea, como se especifica en ECHOE y ECHOPRT.
- DEFECHO
- (No en POSIX) Hacer eco de caracteres sólo cuando esté leyendo un proceso.
- FLUSHO
- (No en POSIX; sin soporte en Linux) 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, SIGQUIT y SIGSUSP.
- TOSTOP
- Envía la señal SIGTTOU al grupo de proceso de un proceso en segundo plano que trata de escribir en su terminal controladora.
- PENDIN
- (No en POSIX; sin soporte en Linux) Todos los caracteres de la cola de entrada se reimprimen cuando se lee el siguiente carácter ( bash maneja el teclear por adelantado así.)
- IEXTEN
- Habilita el procesamiento de entrada definido por la implementación. Se debe activar esta opción, además de ICANON, para que se interpreten los caracteres especiales EOL2, LNEXT, REPRINT y WERASE y para que tenga efecto la opción IUCLC.
- VINTR
- (003, ETX, Ctrl-C o también 0177, DEL, rubout) Carácter de interrupción. Envía una señal SIGINT. Se reconoce cuando ISIG está activa en cuyo caso no se pasa como dato de entrada.
- VQUIT
- (034, FS, Ctrl-\) Carácter de salida/parada. Envía una señal SIGQUIT. Se reconoce cuando ISIG está activa en cuyo caso no se pasa como dato de entrada.
- VERASE
- (0177, DEL, rubout, o 010, BS, Ctrl-H, o también #) Carácter de borrado. Borra el carácter anterior todavía no borrado, pero no borra más allá de EOF o del principio de línea. Se reconoce cuando ICANON está activa en cuyo caso no se pasa como dato de entrada.
- VKILL
- (025, NAK, Ctrl-U, o Ctrl-X, o también @) Carácter de eliminación. Borra la entrada desde el último EOF o principio de línea. Se reconoce cuando ICANON está activa en cuyo caso no se pasa como dato de entrada.
- VEOF
- (004, EOT, Ctrl-D) Carácter de fin de fichero. Más exactamente: este carácter hace que lo que haya pendiente en el buffer de la terminal se envíe al programa de usuario que está esperando sin esperar a un fin de línea. Si es el primer carácter de una línea, la función read() en el programa de usuario devuelve 0, que significa ``fin de fichero''. Se reconoce cuando ICANON está activa en cuyo caso no se pasa como dato de entrada.
- VMIN
- Número mínimo de caracteres para una lectura no canónica.
- VEOL
- (0, NUL) Carácter adicional de fin de línea. Se reconoce cuando ICANON está activa.
- VTIME
- Plazo, en décimas de segundo, para una lectura no canónica.
- VEOL2
- (No en POSIX; 0, NUL) Otro carácter más de fin de línea. Se reconoce cuando ICANON está activa.
- VSWTCH
- (No en POSIX; sin soporte en Linux; 0, NUL) Carácter de conmutación/cambio. (Sólo lo usa shl.)
- VSTART
- (021, DC1, Ctrl-Q) Carácter de comienzo. Reinica la salida detenida por un carácter de parada. Se reconoce cuando IXON está activa en cuyo caso no se pasa como dato de entrada.
- VSTOP
- (023, DC3, Ctrl-S) Carácter de parada. Detiene la salida hasta que se teclee un carácter de comienzo. Se reconoce cuando IXON está activa en cuyo caso no se pasa como dato de entrada.
- VSUSP
- (032, SUB, Ctrl-Z) Carácter de suspensión. Envía una señal SIGTSTP. Se reconoce cuando ISIG está activa en cuyo caso no se pasa como dato de entrada.
- VDSUSP
- (No en POSIX; sin soporte en Linux; 031, EM, Ctrl-Y) Carácter de suspensión demorada: envía una señal SIGTSTP cuando el programa de usuario lee el carácter. Se reconoce cuando IEXTEN e ISIG están activas y el sistema soporta control de trabajos, en cuyo caso no se pasa como dato de entrada.
- VLNEXT
- (No en POSIX; 026, SYN, Ctrl-V) Siguiente literal. Obtiene tal cual el siguiente carácter de entrada, quitándole cualquier posible significado especial. Se reconoce cuando IEXTEN está activa en cuyo caso no se pasa como dato de entrada.
- VWERASE
- (No en POSIX; 027, ETB, Ctrl-W) Borrado de palabras. Se reconoce cuando ICANON e IEXTEN está activas, en cuyo caso no se pasa como dato de entrada.
- VREPRINT
- (No en POSIX; 022, DC2, Ctrl-R) Reimprime los caracteres no leídos. Se reconoce cuando ICANON e IEXTEN están activas, en cuyo caso no se pasa como dato de entrada.
- VDISCARD
- (No en POSIX; sin soporte en Linux; 017, SI, Ctrl-O) Conmutar: comenzar/detener el descarte de salida pendiente. Se reconoce cuando IEXTEN está activa, en cuyo caso no se pasa como dato de entrada.
- VSTATUS
- (No en POSIX; sin soporte en Linux; solicitud de estado: 024, DC4, Ctrl-T).
- TCSANOW
- el cambio ocurre inmediatamente.
- TCSADRAIN
- el cambio ocurre después de que se haya transmitido toda la salida escrita a fd. Esta función debería emplearse cuando se cambien parámetros que afecten a la salida.
- TCSAFLUSH
- el cambio ocurre después de que se haya transmitido toda la salida escrita al objeto referenciado por fd, y toda la entrada que se haya recibido pero no leído será descartada antes de que se haga el cambio.
- TCIFLUSH
- descarta datos recibidos pero no leídos.
- TCOFLUSH
- descarta datos escritos pero no transmitidos.
- TCIOFLUSH
- descarta tanto los datos recibidos pero no leídos, como los escritos pero no transmitidos.
- 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.
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 se activarán más. Normalmente, esto desconectará la línea. CBAUDEX es una máscara para las velocidades más grandes que 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.
VALOR DEVUELTO¶
cfgetispeed() devuelve la velocidad de entrada guardada en la estructura termios. cfgetospeed() devuelve la velocidad de salida guardada en la estructura termios. Todas las demás funciones devuelven:- 0
- en caso de éxito,
- -1
- en caso de fallo, y asignan un valor a errno para indicar el error.
NOTAS¶
Unix V7 y varios sistemas posteriores poseen una lista de tasas de transferencia en las que, después de los catorce valores B0, ..., B9600, aparecen dos constantes, EXTA y EXTB ("External A" y "External B"). Muchos sistemas extienden la lista con tasas de transferencia mucho más altas.VÉASE TAMBIÉN¶
stty(1), setserial(8)17 diciembre 2001 | Linux" |