Fichier termios.h

Objectif

Définit la structure du fichier termios , qui fournit l'interface de terminal pour la compatibilité POSIX .

Descriptif

Le fichier /usr/include/termios.h contient des informations utilisées par les sous-routines qui s'appliquent aux fichiers de terminal. Les définitions, les valeurs et les structures de ce fichier sont requises pour la compatibilité avec la norme POSIX . Le fichier termios.h prend également en charge les opérations de contrôle du modemioctl.

Les informations générales de l'interface de terminal sont contenues dans le fichier termio.h . La structure termio du fichier termio.h définit les modes d'entrée, de sortie, de contrôle et de discipline de ligne de base. Si un programme appelant est identifié comme nécessitant la compatibilité POSIX , la structure termios et des informations supplémentaires sur les paquets de contrôle POSIX dans le fichier termios.h sont implémentées. Les opérations de taille de fenêtre et de terminal utilisent la structure winsize , qui est définie dans le fichier ioctl.h . La structure termios du fichier termios.h contient les zones suivantes:

  • c_iflag
  • c_oflag
  • c_cflag
  • c_lflag
  • c_cc

Le fichier termios.h définit également les valeurs pour les paramètres suivants de la sous-routine tcsetattr :

  • OptionalActions
  • QueueSelector
  • Opération

Le fichier termios.h prend également en charge les opérations de contrôle du modemioctl.

Descriptions de zone
 
c_iflag
Décrit le contrôle d'entrée du terminal de base. La valeur initiale du contrôle d'entrée est très claire. Les modes d'entrée possibles sont les suivants:
IGNORENT
Ignore la condition de rupture. Dans le contexte de la transmission de données en série asynchrone, un Condition de rupture est défini comme une séquence de bits de valeur zéro qui continue pendant plus de temps à envoyer un octet. La séquence entière des bits de valeur zéro est interprétée comme une condition de rupture unique, même si elle continue pour une quantité de temps équivalente à plus d'un octet. Si l'indicateur IGNORENT est défini, une condition de rupture détectée sur l'entrée est ignorée, ce qui signifie qu'elle n'est pas mise dans la file d'entrée et n'est donc pas lue par un processus quelconque.
BRKINT
Signal d'interruption sur la condition de rupture. Si l'indicateur IGNORENT n'est pas défini et que l'indicateur BRKINT est défini, la condition de rupture vide les files d'attente d'entrée et de sortie. Si le terminal est le terminal de contrôle d'un groupe de processus de premier plan, la condition de rupture génère un signal SIGINT sur ce groupe de processus de premier plan. Si ni l'indicateur IGNORENT ni l'indicateur BRKINT n'est défini, une condition de rupture est lue en tant qu'unique \0, ou si l'indicateur PARMRK est défini, sous la forme \377, \0, \0.
IGNAL
Ignore les caractères avec des erreurs de parité. Si cet indicateur est défini, un octet avec un cadrage ou une erreur de parité (autre que la rupture) est ignoré.
PARMRK
Marque les erreurs de parité. Si l'indicateur PARMRK est défini, et que l'indicateur IGNAL n'est pas défini, un octet avec une erreur d'encadrement ou de parité (autre que la rupture) est attribué à l'application en tant que séquence à trois caractères \377, \0, X, où \377, \0 est un indicateur à deux caractères qui précède chaque séquence et X est les données du caractère reçu par erreur. Pour éviter toute ambiguïté dans ce cas, si l'indicateur ISTRIP n'est pas défini, un caractère valide \377 est attribué à l'application sous la forme \377, \377. Si ni l'indicateur IGNAL ni l'indicateur PARMRK n'est défini, une erreur d'encadrement ou de parité (autre que la rupture) est donnée à l'application sous la forme d'un caractère unique \0.
PILE
Active le contrôle de parité d'entrée. Si cet indicateur est défini, la vérification de parité d'entrée est activée. Si ce n'est pas le cas, la vérification de parité d'entrée est désactivée. Cela permet la génération de parité de sortie sans erreurs de parité d'entrée.
ISTRIP
Svoyage les caractères. Si cet indicateur est défini, les caractères d'entrée valides sont d'abord supprimés sur 7 bits. Sinon, les 8 bits sont traités.
INLCR
Mappes un caractère de nouvelle ligne (NL) à un retour chariot (CR) en entrée. Si cet indicateur est défini, un caractère NL reçu est converti en caractère CR.
IGNCR
Ignore le caractère CR. Si cet indicateur est défini, un caractère CR reçu est ignoré et non lu.
ICRNL
Mappe un caractère CR au caractère NL en entrée. Si l'indicateur ICRNL est défini et que l'indicateur IGNCR n'est pas défini, un caractère CR reçu est converti en caractères NL.
IUCLC
Mappes en majuscules en minuscules sur les entrées. Si cet indicateur est défini, un caractère alphabétique reçu est traduit dans le caractère en minuscules correspondant.
IXON
Active le démarrage et l'arrêt de la commande de sortie. Si cet indicateur est défini, un caractère STOP reçu suspend la sortie et un caractère START reçu redémarre la sortie. Lorsque l'indicateur IXON est défini, les caractères START et STOP ne sont pas lus, mais exécutent simplement des fonctions de contrôle de flux. Lorsque l'indicateur IXON n'est pas défini, les caractères START et STOP sont lus.
IXANY
Permet à n'importe quel caractère de redémarrer la sortie. Si cet indicateur est défini, tout caractère d'entrée redémarre la sortie suspendue.
IXOFF
Active le contrôle des entrées de démarrage et d'arrêt. Si cet indicateur est défini, le système transmet un caractère STOP lorsque la file d'attente d'entrée est presque complète et un caractère START lorsqu'une entrée suffisante a été lue que la file d'attente est à nouveau vide.
IMAXBEL
Echoque le caractère ASCII BEL si le flux d'entrée s'écoule. L'entrée supplémentaire n'est pas stockée, mais l'entrée déjà présente dans le flux d'entrée n'est pas perdue. Si cette option n'est pas définie, aucun caractère BEL n'est répercutant ; l'entrée de la file d'entrée est supprimée si le flux d'entrée s'écoule. Cette fonction requiert également la définition du bit IEXTEN .
c_oflag
Indique comment le système traite la sortie. La valeur initiale de la commande de sortie est "all bits clear". Les modes de sortie possibles sont les suivants:
OMISSION
Sortie post-processus. Si cet indicateur est défini, les caractères de sortie sont post-traités comme indiqué par les autres indicateurs. Sinon, les caractères sont transmis sans modification.
OLCUC
Mappes en minuscules en majuscules sur la sortie. Si cet indicateur est défini, un caractère alphabétique en minuscules est transmis en tant que caractère majuscules correspondant. Cet indicateur est souvent utilisé en conjonction avec le mode d'entrée IUCLC .
ONLCR
Mappes NL à CR-NL sur la sortie. Si cet indicateur est défini, le caractère NL est transmis en tant que paire de caractères CR-NL.
OCRNL
Cartes CR à NL sur la sortie. Si cet indicateur est défini, le caractère CR est transmis en tant que caractère NL.
ONOCR
Indique qu'il n'y a pas de sortie CR à la colonne 0. Si cet indicateur est défini, aucun caractère CR n'est transmis lors de la colonne 0 (première position).
ONLRET
NL exécute une fonction CR. Si cet indicateur est défini, le caractère NL est supposé faire la fonction de retour chariot. Le pointeur de colonne est défini sur 0 et le délai indiqué pour le retour chariot est utilisé. Si ni l'indicateur ONLCR, OCRNL, ONOCR, ni ONLRET n'est défini, le caractère NL est supposé faire uniquement la fonction de flux de ligne. Le pointeur de colonne reste inchangé. Le pointeur de colonne est défini sur 0 si le caractère CR est effectivement transmis.

Les bits de retard indiquent la durée pendant laquelle une transmission s'arrête pour permettre un mouvement mécanique ou autre lorsque certains caractères sont envoyés au terminal. Les retards réels dépendent de la vitesse de la ligne et de la charge du système.

REMPLOCE
Utilise les caractères de remplissage pour le retard. Si cet indicateur est défini, les caractères de remplissage sont transmis pour un retard au lieu d'un retard chronométré. Ceci est utile pour les terminaux à débit élevé en bauds qui n'ont besoin que d'un délai minimal.
OFDEL
Si cet indicateur est défini, le caractère de remplissage est DEL. Si cette option n'est pas définie, le caractère de remplissage est NULL.
NLDLY
Sélectionne les retards des caractères de nouvelle ligne. Il s'agit du masque à utiliser avant la comparaison avec NL0 et NL1:
NL0
Indique un délai.
NL1
Indique un délai d'environ 0.10 secondes. Si l'indicateur ONLRET est défini, les retards de retour chariot sont utilisés à la place des retards de la nouvelle ligne. Si l'indicateur REMPLOCE est défini, deux caractères de remplissage sont transmis.
CREMENT
Sélectionne les retards de retour chariot. Il s'agit du masque à utiliser avant de comparer à CR0, CR1, CR2et CR3:
CR0
Indique un délai.
CR1
Indique que le délai dépend de la position de la colonne en cours. Si l'indicateur REMPLOCE est défini, ce délai transmet deux caractères de remplissage.
CR2
Indique un délai d'environ 0.10 secondes. Si l'indicateur REMPLOCE est défini, ce délai transmet quatre caractères de remplissage.
CR3
Indique un délai d'environ 0.15 secondes.
TABEMENT
Sélectionne les retards de l'onglet horizontal. Il s'agit du masque à utiliser avant de comparer à TAB0, TAB1, TAB2et TAB3. Si l'indicateur REMPLOCE est défini, l'un de ces retards (sauf TAB3) transmet deux caractères de remplissage.
TAB0
Indique un délai.
TAB1
Indique que le délai dépend de la position de la colonne en cours. Si l'indicateur REMPLOCE est défini, deux caractères de remplissage sont transmis.
TAB2
Indique un délai d'environ 0.10 secondes.
TAB3
Indique que les onglets doivent être étendus dans des espaces.
BSDLY
Sélectionne les retards de l'espace arrière. Il s'agit du masque à utiliser avant la comparaison avec BS0 et BS1:
BS0
Indique un délai.
BS1
Indique un délai d'environ 0.05 secondes. Si l'indicateur REMPLOCE est défini, ce délai transmet un caractère de remplissage.
VTREMENT
Sélectionne les retards de l'onglet vertical. Il s'agit du masque à utiliser avant la comparaison avec VT0 et VT1:
VT0
Indique un délai.
VT1
Indique un délai d'environ 2 secondes.
FÉVEMENT
Sélectionne les retards du flux de formulaires. Il s'agit du masque à utiliser avant la comparaison avec FF0 et FF1:
FF0
Indique un délai.
FF1
Indique un délai d'environ 2 secondes.
c_cflag
Décrit le contrôle matériel du terminal. Outre les modes de contrôle de base, cette zone utilise les caractères de contrôle suivants:
CBAUD
Indique le débit en bauds. Ces bits indiquent le débit en bauds pour une connexion. Pour tout matériel particulier, les changements de vitesse impossibles sont ignorés.
B50
50 bauds.
B75
75 bauds.
B110
110 bauds.
B134
134.5 bauds.
B150
150 bauds.
B200
200 bauds.
B300
300 bauds.
B600
600 bauds.
B1200
1200 bauds.
B1800
1800 bauds.
B2400
2400 bauds.
B4800
4800 bauds.
B9600
9600 bauds.
B19200
19200 bauds.
B38400
38400 bauds.
EXTA
Externe A.
EXTB
Externe B.
TAILLE
Indique la taille du caractère. Ces bits indiquent la taille des caractères, en bits, pour les opérations de transmission et de réception. La taille de caractère n'inclut pas le bit de parité, le cas échéant:
CS5
5 bits
CS6
6 bits
CS7
7 bits
CS8
8 bits.
CSTOPB
Indique le nombre de bits d'arrêt. Si cet indicateur est défini, 2 bits d'arrêt sont envoyés ; sinon, seul un bit d'arrêt est envoyé.
CREAD
Active le récepteur. Si cet indicateur est défini, le récepteur est activé. Sinon, les caractères ne sont pas reçus.
PARENB
Active la parité. Si cet indicateur est défini, la génération et la détection de parité sont activées et un bit de parité est ajouté à chaque caractère.
PARODD
Indique une parité impaire. Si la parité est activée, l'indicateur PARODD spécifie la parité impaire si elle est définie. Si la parité est activée et que l'indicateur PARODD n'est pas défini, même la parité est utilisée.
HUPCL
Il s'accrochez à la dernière fermeture. Si cet indicateur est défini, la ligne est déconnectée lorsque le dernier processus ferme la ligne ou lorsque le processus se termine (lorsque le signal "data terminal ready" est en baisse).
CLOCAL
Indique une ligne locale. Si cette option est définie, la ligne est supposée avoir une connexion directe locale sans contrôle de modem. Si ce n'est pas le cas, le contrôle du modem (accès commuté) est pris en charge.
CIBAUD
Indique le débit en bauds d'entrée si différent du débit de sortie.
PAREXT
Indique la parité étendue pour la parité espace et espace.
c_lflag
Contrôle différentes fonctions de terminal. La valeur initiale après une ouverture est "tous les bits clairs". Outre les modes de base, cette zone utilise les symboles de nom de masque suivants:
ISIG
Active les signaux. Si cet indicateur est défini, chaque caractère d'entrée est vérifié par rapport aux caractères de contrôle spécial INTR, QUIT, SUSP et DSUSP. Si un caractère d'entrée correspond à l'un de ces caractères de contrôle, la fonction associée à ce caractère est exécutée. Si l'indicateur ISIG n'est pas défini, la vérification n'est pas effectuée.
ICANONS
Active l'entrée canonique. Si cet indicateur est défini, il active le traitement canonique, qui active les fonctions d'effacement et de suppression, ainsi que l'assemblage des caractères d'entrée dans les lignes délimitées par les caractères NL, EOF et EOL. Si l'indicateur ICANONS n'est pas défini, les demandes de lecture sont satisfaites directement à partir de la file d'entrée. Dans ce cas, une demande de lecture n'est pas satisfaite tant que l'une des conditions suivantes n'est pas remplie:
  • Le nombre minimal de caractères spécifié par MIN est reçu.
  • La valeur d'expiration spécifiée par HEURE est arrivée à expiration depuis la réception du dernier caractère. Cela permet de lire des rafales d'entrée, tout en permettant une entrée à un seul caractère.

Les valeurs MIN et HEURE sont stockées dans les positions des caractères EOF et EOL, respectivement. Les valeurs de caractères de MIN et HEURE sont converties en équivalents ascii pour obtenir la valeur numérique. La valeur d'heure représente les dixièmes de secondes.

XCASE
Active la présentation canonique en majuscules et en minuscules. Si cet indicateur est défini avec l'indicateur ICANONS , une lettre majuscules (ou la lettre majuscules traduite en minuscules par le mode d'entrée IUCLC ) est acceptée sur l'entrée en le précédant avec un caractère \ (barre oblique inversée). La sortie est ensuite précédée d'une barre oblique inversée. Dans ce mode, la sortie génère et l'entrée accepte les séquences d'échappement suivantes:
Pour
Utilisation
` (tombe)
\ `
|
\ !
~
\ ^
{
\ (
}
\ )
\
\ \

Par exemple, A est entrée en tant que\a, \n comme\\n, et \N comme\\\n.

NOFLSH
Désactive le vidage de la file d'attente. Si cet indicateur est défini, le vidage normal des files d'attente d'entrée et de sortie associées aux caractères INTR, QUIT et SUSP n'est pas effectué.
FLUSHO
Va la sortie. Lorsque ce bit est défini en tapant le caractère FLUSH, les données écrites sur le terminal sont supprimées. Un terminal peut annuler l'effet de saisir le caractère FLUSH en nettoyant ce bit.
PENDIN
Réimpression en attente d'entrée. Si cette option est définie, toute entrée en attente après un passage du mode brut au mode canonique est à nouveau saisie lors de la prochaine opération de lecture en attente ou lors de l'arrivée de la prochaine entrée. L'indicateur PENDIN est un bit d'état interne.
IEXTEN
Active les fonctions étendues (définies par la mise en oeuvre) à reconnaître à partir des données d'entrée. Si cette option n'est pas définie, les fonctions définies par l'implémentation ne sont pas reconnues et les caractères d'entrée correspondants sont traités comme indiqué pour les indicateurs ICANONS, ISIG, IXONet IXOFF . La reconnaissance des caractères de contrôle spéciaux suivants nécessite que l'indicateur IEXTEN soit défini:
  • VEOL2
  • VDSUSP
  • VRÉIMPRESSION
  • VIDE
  • VWERSE
  • VLNEXT

Les fonctions associées aux bits suivants requièrent également la définition de l'indicateur IEXTEN :

  • IMAXBEL
  • ECHOKE
  • ECHOPRT
  • ECHOCTL
TOSHAUT
Envoie un signal SIGTTOU lorsqu'un processus d'un groupe de processus d'arrière-plan tente d'écrire sur son terminal de contrôle. Le signal SIGTTOU arrête les membres du groupe de processus.
Echo
Active l'écho. Si cet indicateur est défini, les caractères sont répercutant qu'ils sont reçus.

Lorsque ICANONS est défini, les fonctions d'écho suivantes sont également possibles:

ECHOE
Echoit le caractère d'effacement en tant que Backspace-Space-Backspace. Si les indicateurs ECHO et ECHOE sont tous les deux définis et que l'indicateur ECHOPRT n'est pas défini, les caractères ERASE et WERASE sont repris sous la forme d'une ou de plusieurs séquences ASCII Backspace-Space-Backspace, qui efface les derniers caractères de l'écran.
ECHOPRT
Si les indicateurs ECHO et ECHOPRT sont tous deux définis, le premier caractère ERASE et WERASE dans une séquence sont repris sous la forme d'un \ (barre oblique inversée), suivi des caractères effacés. Les caractères ERASE et WERASE ultérieurs font écho aux caractères effacés, dans l'ordre inverse. Le caractère non effacé suivant provoque la saisie d'une / (barre oblique) avant que le caractère non effacé ne soit répercutant. Cette fonction requiert également la définition du bit IEXTEN .
ECHOKE
Backspace-Espace-Ligne complète de l'arrière-plan sur la ligne kill. Si cet indicateur est défini, le caractère d'arrêt est répercutant l'effacement de la ligne entière à partir de l'écran (à l'aide du mécanisme sélectionné par les indicateurs ECHOE et ECHOPRT ). Cette fonction requiert également la définition de l'indicateur IEXTEN .
ECHOK
Echoit le caractère NL après la mort. Si l'indicateur ECHOK est défini et que l'indicateur ECHOKE n'est pas défini, le caractère NL est repris après réception du caractère d'arrêt. Cela souligne que la ligne est supprimée.
ECHONL
Echoque le caractère NL. Si l'indicateur ECHONL est défini, le caractère NL est repris même si l'indicateur ECHO n'est pas défini. Ceci est utile pour les terminaux qui sont définis sur "echo local" (également appelé "demi-duplex").
ECHOCTL
Echoque les caractères de contrôle (avec des codes compris entre 0 et 37 octal) sous la forme ^X, où X est le caractère qui résulte de l'ajout de 100 octal au code du caractère de contrôle. (Par exemple, le caractère avec le code octal 1 est répercuté comme^A). Le caractère ASCII DEL (code 177 octal) est répercuté comme^?. Les caractères ASCII TAB, NL et START ne sont pas repris. A moins d'un échappement (précédé d'une barre oblique inversée), le caractère EOF n'est pas répercutant. Par conséquent, parce que l'EOT est le caractère par défaut de l'EOF, les terminaux qui répondent à l'EOT sont empêchés de s'accroché. Cette fonction requiert également la définition de l'indicateur IEXTEN .
c_cc
Indique un tableau qui définit les caractères de contrôle spéciaux. Les positions relatives et les valeurs initiales de chaque fonction sont les suivantes:
VINTR
Indexe le caractère spécial INTR (Ctrl-c), qui est reconnu en entrée si l'indicateur ISIG est défini. Le caractère INTR génère un signal SIGINT , qui est envoyé à tous les processus du groupe de processus de premier plan pour lequel le terminal est le terminal de contrôle. Si l'indicateur ISIG est défini, le caractère INTR est supprimé lors du traitement.
VDÉMISSION
Indexe le caractère spécial QUIT (Ctrl-\), qui est reconnu sur l'entrée si l'indicateur ISIG est défini. Le caractère QUIT génère un signal SIGDÉMISSION , qui est envoyé à tous les processus du groupe de processus d'avant-plan pour lequel le terminal est le terminal de contrôle, et écrit un fichier image Coeur dans le répertoire de travail en cours. Si l'indicateur ISIG est défini, le caractère QUIT est supprimé lors du traitement.
VERASE
Indexe le caractère spécial ERASE (Backspace), qui est reconnu en entrée si l'indicateur ICANONS est défini. Le caractère ERASE ne supprime pas le début de la ligne comme étant délimité par un caractère NL, EOL, EOF ou EOL2 . Si l'indicateur ICANONS est défini, le caractère ERASE est supprimé lors du traitement.
VKILL
Indexe le caractère spécial KILL (Ctrl-u), qui est reconnu en entrée si l'indicateur ICANONS est défini. Le caractère KILL supprime la totalité de la ligne, délimitée par un caractère NL, EOL, EOF ou EOL2 . Si l'indicateur ICANONS est défini, le caractère KILL est supprimé lors du traitement.
VEOF
Indexe le caractère spécial EOF (Ctrl-d), qui est reconnu en entrée si l'indicateur ICANONS est défini. Lorsque EOF est reçu, tous les caractères en attente de lecture sont immédiatement transmis au processus, sans attendre une nouvelle ligne, et l'EOF est supprimé. Si l'EOF est reçu au début d'une ligne (aucun caractère n'est en attente), un nombre de caractères de zéro est renvoyé de la lecture, indiquant un fin de fichier. Si l'indicateur ICANONS est défini, le caractère EOF est supprimé lors du traitement.
VEOL
Indexe le caractère spécial EOL (Ctrl-@ ou ASCII NULL), qui est reconnu en entrée si l'indicateur ICANONS est défini. EOL est un délimiteur de ligne supplémentaire, comme NL, et n'est pas utilisé normalement.
VEOL2
Indexe le caractère spécial EOL2 (Ctrl-@ ou ASCII NULL), qui est reconnu en entrée si les indicateurs ICANONS et IEXTEN sont définis. EOL2 est un délimiteur de ligne supplémentaire, comme NL, et n'est pas utilisé normalement.
VSTART
Indexe le caractère spécial START (Ctrl-q), qui est reconnu en entrée si l'indicateur IXON est défini et généré sur la sortie si l'indicateur IXOFF est défini. Le caractère START peut être utilisé pour reprendre la sortie suspendue par un caractère STOP. Si l'indicateur IXON est défini, le caractère START est supprimé lors du traitement. Alors que la sortie n'est pas suspendue, les caractères START sont ignorés et ne sont pas lus. VSTRT est un alias pour VSTART.
ARRÊT
Indexe le caractère spécial STOP (Ctrl-s), qui est reconnu en entrée si l'indicateur IXON est défini et généré sur la sortie si l'indicateur IXOFF est défini. Le caractère STOP peut être utilisé avec des terminaux pour empêcher la sortie de la sortie avant qu'elle ne puisse être lue. Si l'indicateur IXON est défini, le caractère STOP est supprimé lors du traitement. Alors que la sortie est suspendue, les caractères STOP sont ignorés et ne sont pas lus.
VA
Indexe le caractère spécial SUSP (Ctrl-z), qui est reconnu en entrée si l'indicateur ISIG est défini. Le caractère SUSP génère un signal SIGTSTP , qui est envoyé à tous les processus du groupe de processus de premier plan pour lequel le terminal est le terminal de contrôle. Si l'indicateur ISIG est défini, le caractère SUSP est supprimé lors du traitement.
VDSUSP
Indexe le caractère spécial DSUSP (Ctrl-y), qui est reconnu en entrée si les indicateurs ISIG et IEXTEN sont définis. Le caractère DSUSP génère un signal SIGTSTP en tant que caractère SUSP, mais le signal est envoyé lorsqu'un processus du groupe de processus de premier plan tente de lire le caractère DSUSP plutôt que lorsque DSUSP est entré. Si les indicateurs ISIG et IEXTEN sont définis, le caractère DSUSP est supprimé lors du traitement.
VRÉIMPRESSION
Indexe le caractère spécial REPRINT (Ctrl-r), qui est reconnu sur l'entrée si les indicateurs ICANONS et IEXTEN sont définis. Le caractère REPRINT réimprime tous les caractères, précédé d'une nouvelle ligne, qui n'ont pas été lus. Si les indicateurs ICANONS et IEXTEN sont définis, le caractère REPRINT est supprimé lors du traitement.
VIDE
Indexe le caractère spécial DISCARD (Ctrl-o), qui est reconnu sur l'entrée si les indicateurs ICANONS et IEXTEN sont définis. Le caractère DISCARD entraîne la suppression de la sortie suivante jusqu'à ce qu'un autre caractère DISCARD soit saisi, qu'un plus grand nombre d'entrées arrive ou que la condition soit effacée par un programme. Si les indicateurs ICANONS et IEXTEN sont définis, le caractère DISCARD est supprimé lors du traitement.
VWERSE
Indexe le caractère spécial WERASE (Ctrl-w), qui est reconnu sur l'entrée si les indicateurs ICANONS et IEXTEN sont définis. Le caractère WERASE entraîne l'effacé du mot précédent. Le caractère WERASE n'efface pas au-delà du début de la ligne, délimité par un caractère NL, EOL, EOF ou EOL2 . Si les indicateurs ICANONS et IEXTEN sont définis, le caractère WERASE est supprimé lors du traitement.
VLNEXT
Indexe le caractère spécial LNEXT (littéral suivant) (Ctrl-v), qui est reconnu sur l'entrée si les indicateurs ICANONS et IEXTEN sont définis. Le caractère LNEXT permet d'ignorer la signification spéciale du caractère suivant afin que les caractères puissent être en entrée sans être interprétés par le système. Si les indicateurs ICANONS, ECHOet IEXTEN sont définis, le caractère LNEXT est remplacé par une séquence ^ -Backspace lors du traitement.
VMIN
Index la valeur MIN , qui n'est pas un caractère spécial. L'utilisation de la valeur MIN est décrite dans la discussion sur le traitement des entrées en mode non canonique dans "ldterm Line Discipline" Dans Concepts généraux de programmation: écriture et débogage de programmes.
HEURE
Index la valeur HEURE , qui n'est pas un caractère spécial. L'utilisation de la valeur HEURE est décrite dans la discussion sur le traitement des entrées en mode non canonique dans "ldterm Line Discipline" Dans Concepts généraux de programmation: écriture et débogage de programmes.

Les valeurs de caractères des caractères de contrôle suivants peuvent être modifiées:

Article Descriptif Valeur Valeur
Intr fin de fichier ARRET DISCARD
quit Fin de vie Sup Werase
ERASE EOL2 DSusp Lnext
kill LANCEZ Réimpression Réimpression

Les caractères ERASE, KILL et EOF peuvent également être échappés (précéd d'une barre oblique inversée) de sorte qu'aucun traitement spécial n'est effectué.

Définitions de valeur de paramètre

Les valeurs suivantes du paramètre OptionalActions de la sous-routine tcsetattr sont également définies dans le fichier termios.h :

Article Descriptif
TCSANOW Définit immédiatement les paramètres associés au terminal à partir de la structure Termios référencée.
TCSADRAIN Les attentes jusqu'à ce que toutes les sorties écrites dans le fichier objet aient été transmises avant de définir les paramètres de terminal à partir de la structure Termios .
TCSAFLUSH Les attentes jusqu'à ce que toutes les sorties écrites dans le fichier objet aient été transmises et jusqu'à ce que toutes les entrées reçues mais non lues aient été supprimées avant de définir les paramètres de terminal à partir de la structure Termios .

Les valeurs suivantes pour le paramètre QueueSelector de la sous-routine tcflush sont également définies dans ce fichier d'en-tête:

Article Descriptif
TCIFLUSH Vidages des données reçues mais non lues.
TCOFLUSH Vidages des données écrites mais non transmises.
TCIOFLUSH Vidages des données reçues mais non lues, ainsi que des données écrites mais non transmises.

Les valeurs suivantes du paramètre Action de la sous-routine tcflow sont également définies dans le fichier termios.h :

Article Descriptif
TCOOFF Suspende la sortie des données par le fichier objet nommé dans le sous-programme Tcflow .
TCOON Redémarre la sortie de données suspendue par l'action TCOOFF .
TCIOFF Transmet un caractère d'arrêt pour arrêter la transmission de données par l'unité de terminal.
TCION Transmet un caractère de début pour démarrer ou redémarrer la transmission de données par l'unité de terminal.

Opérations de contrôle du modem

Les opérations ioctl suivantes, utilisées pour le contrôle du modem, sont une extension de l'interface de discipline de ligne POSIX . Pour utiliser ces opérations dans un programme, le programme doit contenir une instruction #include pour le fichier ioctl.h .

Article Descriptif
TIOCMBIS L'argument de cette commande est un pointeur vers un entier qui active les lignes de contrôle spécifiées par la valeur de masque d'entier. Aucune autre ligne de contrôle n'est affectée.
TIOCMBIQUE L'argument de cette commande est un pointeur vers un entier qui désactive les lignes de contrôle spécifiées par la valeur de masque d'entier. Aucune autre ligne de contrôle n'est affectée.
TIOCMGET Extrait tous les bits de modem. L'argument de cette commande est un pointeur vers un entier où l'état en cours des lignes d'état du modem est stocké. Le statut du modem et les lignes de contrôle du modem sont pris en charge en fonction des capacités du matériel et du pilote de périphérique du matériel.
TIOCMSET Définit tous les bits de modem. L'argument de cette commande est un pointeur vers un entier contenant un nouvel ensemble de bits de modem. Les bits de contrôle du modem utilisent ces bits pour activer ou désactiver les lignes de contrôle du modem, selon que le bit de cette ligne est défini ou clair. Les bits d'état du modem sont ignorés. Les lignes de contrôle du modem qui sont prises en charge dépendent des capacités du matériel et du pilote de périphérique du matériel.

L'entier spécifie l'une des lignes de contrôle ou de statut du modem suivantes sur lesquelles fonctionne la commande Ioctl de contrôle du modem:

TIOCM_LE
Ligne activée
TIOCM_DTR
terminal de données prêt
TIOCM_RTS
demande pour émettre
TIOCM_ST
Transmettre secondaire
TIOCM_SR
Réception secondaire
TIOCM_CTS
Effacer à envoyer
TIOCM_CAR
Détection de porteuse
TIOCM_CD
TIOCM_CAR
TIOCM_RNG
Anneau
TIOCM_RI
TIOCM_RNG
TIOCM_DSR
Poste de données prêt.
TIOCMIATTENTE Attendre la modification du statut de la ligne d'état du modem.
L'argument est un pointeur vers une valeur de masque d'entier spécifiant la ou les lignes d'état du modem sur lesquelles il faut attendre un changement de statut et peut se composer d'une ou de plusieurs des valeurs suivantes:
TIOCM_CTS
Effacer à envoyer
TIOCM_CAR
Détection de porteuse
TIOCM_CD
TIOCM_CAR
TIOCM_RNG
Anneau
TIOCM_RI
TIOCM_RNG
TIOCM_DSR
Poste de données prêt.
Les blocs de demande jusqu'à ce que l'une des lignes spécifiées change de statut, puis retourne à l'appelant. Notez que ce Ioctl bloque même si O_NDELAY ou O_NONBLOCK est défini.

Si aucune des lignes spécifiées ne change de statut, le Ioctl peut bloquer indéfiniment, de sorte qu'il doit être utilisé conjointement avec un temporisateur Alarme () .

Si TIOCM_RNG ou TIOCM_RI est spécifié, la transition est signalée uniquement lorsque la ligne de statut passe de on à off en raison de restrictions matérielles.
Remarque: L'opération correcte de cette Ioctl dépend du câblage approprié.