tty File Especial
Finalidad
Soporta la interfaz de terminal de control.
Descripción
Para cada proceso, el archivo especial /dev/tty es un sinónimo del terminal de control asociado a dicho proceso. Al dirigir mensajes al archivo tty , los programas de aplicación y las secuencias de shell pueden garantizar que los mensajes se graban en el terminal incluso si se redirige la salida. Los programas también pueden dirigir su salida de pantalla a este archivo para que no sea necesario identificar el terminal activo.
Un terminal puede pertenecer a un proceso como su terminal de control. Cada proceso de una sesión que tiene una terminal de control tiene la misma terminal de control. Un terminal puede ser el terminal de control para una sesión como máximo. Si un líder de sesión no tiene ningún terminal de control y abre un archivo de dispositivo de terminal que todavía no está asociado con una sesión (sin utilizar la opción O_NOCTTY de la subrutina Abierto ), el terminal se convierte en el terminal de control del líder de sesión. Si un proceso que no es un líder de sesión abre un archivo de terminal o si se utiliza la opción O_NOCTTY , dicho terminal no se convierte en el terminal de control del proceso de llamada. Cuando una terminal de control se asocia a una sesión, su grupo de procesos en primer plano se establece en el grupo de procesos del líder de sesión.
El terminal de control lo hereda un proceso hijo durante una subrutina de fork . Un proceso no puede finalizar la asociación con su terminal de control cerrando todos sus descriptores de archivo asociados con el terminal de control si otros procesos continúan teniendo el archivo de terminal abierto. Un proceso que no es ya el líder de sesión o un líder de grupo puede romper su asociación con su terminal de control utilizando la subrutina setsid . Otros procesos que quedan en la antigua sesión conservan su asociación con el terminal de control.
Cuando se cierra el último descriptor de archivo asociado con una terminal de control (incluyendo descriptores de archivo retenidos por procesos que no están en la sesión del terminal de control), la terminal de control se desasocia de su sesión actual. La terminal de control desasociada puede entonces ser adquirida por un nuevo líder de sesión.
Un proceso también puede eliminar la asociación que tiene con su terminal de control abriendo el archivo tty y emitiendo el siguiente mandato de ioctl :
ioctl (FileDescriptor, TIOCNOTTY, 0): A menudo es útil disociar los procesos de servidor de su terminal de control para que el terminal no pueda recibir la entrada o que la detenga.
Este controlador de dispositivo también da soporte a las disciplinas de línea POSIX y Berkeley.