Fichier spécial tty

Objectif

Prend en charge l'interface de terminal de contrôle.

Descriptif

Pour chaque processus, le fichier spécial /dev/tty est synonyme du terminal de contrôle associé à ce processus. En dirigeant les messages vers le fichier Tty , les programmes d'application et les séquences de shell peuvent garantir que les messages sont écrits sur le terminal même si la sortie est redirigée. Les programmes peuvent également diriger leur affichage d'affichage vers ce fichier, de sorte qu'il n'est pas nécessaire d'identifier le terminal actif.

Un terminal peut appartenir à un processus comme terminal de contrôle. Chaque processus d'une session ayant un terminal de contrôle a le même terminal de contrôle. Un terminal peut être le terminal de contrôle d'une session au maximum. Si un chef de session n'a pas de terminal de contrôle et ouvre un fichier d'unité de terminal qui n'est pas déjà associé à une session (sans utiliser l'option O_NOCTTY du sous-programme Ouvert ), le terminal devient le terminal de contrôle du responsable de session. Si un processus qui n'est pas un chef de session ouvre un fichier terminal ou si l'option O_NOCTTY est utilisée, ce terminal ne devient pas le terminal de contrôle du processus appelant. Lorsqu'un terminal de contrôle devient associé à une session, son groupe de processus d'avant-plan est défini sur le groupe de processus du responsable de session.

Le terminal de contrôle est hérité d'un processus enfant lors d'une sous-routine Fourche . Un processus ne peut pas mettre fin à l'association avec son terminal de contrôle en fermant tous ses descripteurs de fichiers associés au terminal de contrôle si d'autres processus continuent d'ouvrir le fichier de terminal. Un processus qui n'est pas déjà le chef de session ou un chef de groupe peut rompre son association avec son terminal de contrôle à l'aide de la sous-routine Setsid . Les autres processus restant dans l'ancienne session conservent leur association avec le terminal de contrôle.

Lorsque le dernier descripteur de fichier associé à un terminal de contrôle est fermé (y compris les descripteurs de fichier détenus par des processus qui ne se trouvent pas dans la session du terminal de contrôle), le terminal de contrôle est dissocié de sa session en cours. Le terminal de contrôle désassocié peut ensuite être acquis par un nouveau chef de session.

Un processus peut également supprimer l'association qu'il a avec son terminal de contrôle en ouvrant le fichier Tty et en émettant la commande Ioctl suivante:

ioctl (FileDescriptor, TIOCNOTTY, 0):

Il est souvent utile de dissociassocier les processus serveur de leur terminal de contrôle de sorte qu'ils ne puissent pas recevoir d'entrée ou être arrêtés par le terminal.

Ce pilote de périphérique prend également en charge les disciplines de ligne POSIX et Berkeley.