NOM
termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow,
cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed,
cfsetspeed - Configuration du terminal
SYNOPSIS
#include <termios.h>
#include <unistd.h>
int tcgetattr(int fd, struct termios *termios_p);
int tcsetattr(int fd, int optional_actions,
const struct termios *termios_p);
int tcsendbreak(int fd, int dure);
int tcdrain(int fd);
int tcflush(int fd, int queue_selector);
int tcflow(int fd, int action);
void cfmakeraw(struct termios *termios_p);
speed_t cfgetispeed(const struct termios *termios_p);
speed_t cfgetospeed(const struct termios *termios_p);
int cfsetispeed(struct termios *termios_p, speed_t vitesse);
int cfsetospeed(struct termios *termios_p, speed_t vitesse);
int cfsetspeed(struct termios *termios_p, speed_t vitesse);
Exigences de macros de test de fonctionnalités pour la glibc (voir
feature_test_macros(7)) :
cfsetspeed(), cfmakeraw() : _BSD_SOURCE
Les fonctions termios établissent une interface générale pour les
terminaux, permettant de contrôler les ports de communication
asynchrone.
La structure termios
Plusieurs fonctions décrites ici utilisent un argument termios_p qui
est un pointeur sur une structure termios. Cette structure contient au
moins les membres suivants :
tcflag_t c_iflag; /* modes d’entrée */
tcflag_t c_oflag; /* modes de sortie */
tcflag_t c_cflag; /* modes de contrôle */
tcflag_t c_lflag; /* modes locaux */
cc_t c_cc[NCCS]; /* caractères de contrôle */
Les valeurs qui peuvent être mises dans ces membres sont décrites
ci-dessous. Dans le cas des quatre premiers membres, les définitions de
certains des modes associés qui peuvent être utilisés ne sont exposés
que si une macro est définie pour des tests spécifiques (voir
feature_test_macros(7)), comme indiqué entre crochets (« [] »).
Dans les descriptions ci-dessous, « pas dans POSIX » signifie que la
valeur n’est pas spécifiée dans POSIX.1-2001, et « XSI » signifie que
la valeur est spécifiée dans POSIX.1-2001 comme faisant partie de
l’extension XSI.
Constante pour l’attribut c_iflag :
IGNBRK Ignorer les signaux BREAK en entrée.
BRKINT Si IGNBRK est indiqué, un caractère BREAK en entrée est ignoré.
S’il n’est pas indiqué, mais si BRKINT est présent, alors un
BREAK videra les files d’attente en entrée et sortie, et si le
terminal contrôle un groupe de processus au premier plan, un
signal SIGINT sera envoyé à ce groupe. Si ni IGNBRK ni BRKINT ne
sont indiqués, un caractère BREAK sera lu comme un caractère nul
(« \0 »), sauf si PARMRK est présent, auquel cas il sera lu
comme une séquence \377 \0 \0.
IGNPAR Ignorer les erreurs de format et de parité.
PARMRK Si IGNPAR n’est pas indiqué, un caractère ayant une erreur de
parité ou de format est préfixé avec \377 \0. Si ni IGNPAR ni
PARMRK ne sont indiqués, un caractère contenant une erreur de
parité ou de format est lu comme \0.
INPCK Valider la vérification de parité en entrée.
ISTRIP Éliminer le huitième bit.
INLCR Convertir NL en CR en entrée.
IGNCR Ignorer CR en entrée.
ICRNL Convertir CR en NL en entrée, sauf si IGNCR est indiqué.
IUCLC (Pas dans POSIX) Transformer les majuscules en minuscules en
entrée.
IXON Valider le contrôle de flux XON/XOFF en sortie.
IXANY (XSI) La sortie bloquée sera redémarrée en tapant n’importe quel
caractère. Le défaut est de ne redémarrer la sortie qu’avec le
caractère START.
IXOFF Valider le contrôle de flux XON/XOFF en entrée.
IMAXBEL
(Pas dans POSIX) Faire sonner le terminal quand le tampon
d’entrée est plein. Linux n’implémente pas ce bit, et considère
qu’il est toujours actif.
IUTF8 (depuis Linux 2.6.4)
(Pas dans POSIX) L’entrée est en UTF-8 ; ceci permet au
caractère d’effacement de fonctionner correctement dans le mode
« cooked ».
Constantes POSIX.1 pour l’attribut c_oflag :
OPOST Traitement en sortie dépendant de l’implémentation.
Les autres constantes pour c_oflag sont définies dans POSIX.1-2001 sauf
indication contraire.
OLCUC (Pas dans POSIX) Convertir les minuscules en majuscules en
sortie.
ONLCR (XSI) Convertir NL en CR-NL en sortie.
OCRNL Convertir CR en NL en sortie.
ONOCR Ne pas émettre de CR en colonne 0.
ONLRET Ne pas émettre de CR.
OFILL Utiliser des caractères de remplissage pour le délai, plutôt
qu’une temporisation.
OFDEL (Pas dans POSIX) Le caractère de remplissage est ASCII DEL
(0177). Sinon c’est ASCII NUL (« \0 »). (Non implémenté dans
Linux)
NLDLY Masque du délai de saut de ligne. Les valeurs sont NL0 et NL1.
[Nécessite _BSD_SOURCE ou _SVID_SOURCE ou _XOPEN_SOURCE]
CRDLY Masque du délai de retour chariot. Les valeurs sont CR0, CR1,
CR2 ou CR3. [Nécessite _BSD_SOURCE ou _SVID_SOURCE ou
_XOPEN_SOURCE]
TABDLY Masque du délai de tabulation horizontale. Les valeurs sont
TAB0, TAB1, TAB2, TAB3 (ou XTABS). Une valeur TAB3 ,
c’est-à-dire XTABS, convertit les tabulations en espaces
(positions toutes les huit colonnes). [Nécessite _BSD_SOURCE ou
_SVID_SOURCE ou _XOPEN_SOURCE]
BSDLY Masque du délai de retour en arrière (backspace). Les valeurs
sont BS0 ou BS1 (n’a jamais été implémenté). [Nécessite
_BSD_SOURCE ou _SVID_SOURCE ou _XOPEN_SOURCE]
VTDLY Masque du délai de tabulation verticale. Les valeurs sont VT0 ou
VT1.
FFDLY Masque du délai de saut de page. Les valeurs sont FF0 ou FF1.
[Nécessite _BSD_SOURCE ou _SVID_SOURCE ou _XOPEN_SOURCE]
Constantes pour l’attribut c_cflag :
CBAUD (Pas dans POSIX) Masque des vitesses (4+1 bits). [Nécessite
_BSD_SOURCE ou _SVID_SOURCE]
CBAUDEX
(Pas dans POSIX) Masque étendu des vitesses (1 bit) inclus dans
CBAUD. [Nécessite _BSD_SOURCE ou _SVID_SOURCE]
POSIX dit que la vitesse est stockée dans une structure termios
sans dire précisément où, et fournit cfgetispeed() et
cfsetispeed() pour la lire ou l’écrire. Certains systèmes
utilisent les bits de CBAUD dans c_cflag, d’autres systèmes
utilisent des champs distincts, par exemple sg_ispeed et
sg_ospeed.
CSIZE Masque de longueur des caractères. Les valeurs sont CS5, CS6,
CS7 ou CS8.
CSTOPB Utiliser deux bits de stop plutôt qu’un.
CREAD Valider la réception.
PARENB Valider le codage de parité en sortie, et la vérification de
parité en entrée.
PARODD Si le bit PARODD est positionné, la parité en entrée et sortie
sera impaire ; sinon une parité paire est utilisée.
HUPCL Abaisser les signaux de contrôle du modem lorsque le dernier
processus referme le périphérique (raccrochage).
CLOCAL Ignorer les signaux de contrôle du modem.
LOBLK (Pas POSIX) Bloquer la sortie depuis un niveau de shell non
concurrent. Utilisé par shl (shell layers). (Non implémenté dans
Linux)
CIBAUD (Pas dans POSIX) Masque des vitesses d’entrée. Les bits pour
CIBAUD sont les mêmes que ceux de CBAUD, décalés à gauche de
IBSHIFT bits. [Nécessite _BSD_SOURCE ou _SVID_SOURCE] (Non
implémenté dans Linux)
CMSPAR (Pas dans POSIX) Parité fixe (marque/espace - supporté par
certains périphériques série) ; si PARODD est positionné, le bit
de parité est toujours à 1 ; si PARODD n’est pas positionné, le
bit de parité est toujours à 0. [Nécessite _BSD_SOURCE ou
_SVID_SOURCE]
CRTSCTS
(Pas dans POSIX) Contrôle de flux RTS/CTS. [Nécessite
_BSD_SOURCE ou _SVID_SOURCE]
Constantes pour l’attribut c_lflag :
ISIG Lorsqu’un caractère INTR, QUIT, SUSP ou DSUSP arrive, engendrer
le signal correspondant.
ICANON Active le mode canonique (décrit ci-dessous).
XCASE (Pas dans POSIX, non supporté sous Linux) Si ICANON est indiqué
également, le terminal est en mode majuscule uniquement. Les
entrées sont converties en minuscules, sauf pour les caractères
précédés par \. En sortie, les caractères majuscules sont
précédés par \ et les minuscules sont converties en majuscules.
(Nécessite _BSD_SOURCE, _SVID_SOURCE ou _XOPEN_SOURCE.)
ECHO Afficher les caractères saisis.
ECHOE Si ICANON est également activé, la touche ERASE efface le
caractère précédent, et WERASE efface le mot précédent.
ECHOK Si ICANON est également activé, la touche KILL efface la ligne
en cours.
ECHONL Si ICANON est également activé, afficher le caractère NL même si
ECHO n’est pas activé.
ECHOCTL
(Pas dans POSIX) Si ECHO est également activé, les signaux de
contrôle ASCII autres que TAB, NL, START, et STOP sont
représentés par ^X, où X est le caractère dont le code ASCII est
supérieur de 0x40 à celui du signal de contrôle. Par exemple,
0x08 (BS) est représenté par ^H. [Nécessite _BSD_SOURCE ou
_SVID_SOURCE]
ECHOPRT
(Pas dans POSIX) Si ICANON et IECHO sont aussi activés, les
caractères sont imprimés lorsqu’ils sont effacés. [Nécessite
_BSD_SOURCE ou _SVID_SOURCE]
ECHOKE (Pas dans POSIX) Si ICANON est également activé, la touche KILL
efface chaque caractère de la ligne, comme indiqué par ECHOE et
ECHOPRT. [Nécessite _BSD_SOURCE ou _SVID_SOURCE]
DEFECHO
(Pas dans POSIX) N’effectuer l’affichage que lorsque le
caractère est lu. (Non implémenté dans Linux)
FLUSHO (Pas dans POSIX, non supporté sous Linux) Le tampon de sortie
est vidé. Cet attribut est déclenché en tapant le caractère
DISCARD. [Nécessite _BSD_SOURCE ou _SVID_SOURCE]
NOFLSH Désactiver le vidage des files d’entrée et de sortie pendant les
signaux SIGINT, SIGQUIT et SIGSUSP.
TOSTOP Envoyer le signal SIGTTOU au groupe d’un processus en
arrière-plan essayant d’écrire sur son terminal de contrôle.
PENDIN (Pas dans POSIX, non supporté sous Linux) Tous les caractères de
la file d’entrée sont réimprimés quand le caractère suivant est
lu. (bash(1) utilise ceci pour la complétion de commande)
[Nécessite _BSD_SOURCE ou _SVID_SOURCE]
IEXTEN Traitement de l’entrée dépendant de l’implémentation. Cet
attribut, tout comme ICANON, doit être actif pour que les
caractères spéciaux EOL2, LNEXT, REPRINT et WERASE soient
interprétés, et pour que l’attribut IUCLC prenne effet.
Le tableau c_cc définit des caractères de contrôle spéciaux. Les
symboles (valeurs initiales) et significations sont :
VINTR (003, ETX, Ctrl-C, ou encore 0177, DEL, rubout) Caractère
d’interruption. Envoie le signal SIGINT. Reconnu quand ISIG est
présent, et n’est pas transmis en entrée.
VQUIT (034, FS, Ctrl-\) Caractère Quit. Envoie le signal SIGQUIT.
Reconnu quand ISIG est présent, et n’est pas transmis en entrée.
VERASE (0177, DEL, rubout, ou 010, BS, Ctrl-H ou encore #) Caractère
d’effacement. Ceci efface le caractère précédent pas encore
effacé, mais ne revient pas en-deça d’EOF ou du début de ligne.
Reconnu quand ICANON est actif, et n’est pas transmis en entrée.
VKILL (025, NAK, Ctrl-U ou Ctrl-X, ou encore @) Caractère Kill. Il
efface tous les caractères en entrée, jusqu’au dernier EOF ou
début de ligne. Reconnu quand ICANON est actif, et pas transmis
en entrée.
VEOF (004, EOT, Ctrl-D) Caractère de fin de fichier. Plus
précisément : ce caractère oblige l’envoi du contenu du tampon
vers le programme lecteur sans attendre la fin de ligne. S’il
s’agit du premier caractère de la ligne, l’appel à read(2)
renvoie zéro dans le programme appelant, ce qui correspond à une
fin de fichier. Reconnu quand ICANON est actif, et pas transmis
en entrée.
VMIN Nombre minimal de caractères lors d’une lecture en mode non
canonique.
VEOL (0, NUL) Caractère fin de ligne supplémentaire. Reconnu quand
ICANON est actif.
VTIME Délai en dixièmes de seconde pour une lecture en mode non
canonique.
VEOL2 (Pas dans POSIX ; 0, NUL) Encore un autre caractère fin de
ligne. Reconnu quand ICANON est actif.
VSWTCH (Pas dans POSIX et non supporté sous Linux ; 0, NUL) Caractère
de basculement (utilisé uniquement par shl).
VSTART (021, DC1, Ctrl-Q) Caractère de démarrage. Relance la sortie
interrompue par un caractère d’arrêt. Reconnu quand IXON est
actif, et pas transmis en entrée.
VSTOP (023, DC3, Ctrl-S) Caractère d’arrêt. Interrompt la sortie
jusqu’à la pression d’un caractère de démarrage. Reconnu quand
IXON est actif, et pas transmis en entrée.
VSUSP (032, SUB, Ctrl-Z) Caractère de suspension. Envoie le signal
SIGTSTP. Reconnu quand ISIG est actif, et pas transmis en
entrée.
VDSUSP (Pas dans POSIX et non supporté sous Linux ; 031, EM, Ctrl-Y)
Caractère de suspension retardée. Envoie le signal SIGTSTP quand
le caractère est lu par le programme utilisateur. Reconnu quand
IEXTEN et ISIG sont actifs, et quand le système supporte le
contrôle des processus, et non transmis en entrée.
VLNEXT (Pas dans POSIX ; 026, SYN, Ctrl-V) Protège le caractère suivant
en lui supprimant toute signification spéciale. Reconnu quand
IEXTEN est actif, et pas transmis en entrée.
VWERASE
(Pas dans POSIX ; 027, ETB, Ctrl-W) Effacement de mot. Reconnu
quand ICANON et IEXTEN sont actifs, et pas transmis en entrée.
VREPRINT
(Pas dans POSIX ; 022, DC2, Ctrl-R) Réafficher les caractères
pas encore lus. Reconnu quand ICANON et IEXTEN sont actifs, et
pas transmis en entrée.
VDISCARD
(Pas dans POSIX, non supporté sous Linux ; 017, SI, Ctrl-O)
Bascule start/stop pour ignorer les caractères en attente de
sortie. Reconnu quand IEXTEN est actif, et pas transmis en
entrée.
VSTATUS
(Pas dans POSIX, non supporté sous Linux ; 024, DC4, Ctrl-T).
Ces valeurs sont toutes différentes, sauf VTIME et VMIN qui peuvent
avoir la même valeur que VEOL et VEOF respectivement. En mode non
canonique, la signification d’un caractère spécial est remplacée par sa
valeur de temporisation. Pour des explications sur VMIN et VTIME,
consultez la description du mode non canonique ci-dessous.
Récupérer et changer les paramètres du terminal
tcgetattr() récupère les paramètres associés à l’objet référencé par fd
et les stocke dans la structure termios pointée par termios_p. Cette
fonction peut être appelée par un processus en arrière-plan. Néanmoins,
les attributs de terminal peuvent être modifiés par la suite par le
processus au premier plan.
tcsetattr() fixe les paramètres du terminal (à moins que le matériel
sous-jacent ne le supporte pas) en lisant la structure termios pointée
par termios_p. optional_actions précise quand les changements auront
lieu :
TCSANOW
Les modifications sont effectuées immédiatement.
TCSADRAIN
Les modifications sont effectuées lorsque toutes les opérations
d’écriture sur fd auront été transmises. Cette fonction devrait
être utilisée pour toute modification de paramètre affectant les
sorties.
TCSAFLUSH
Les modifications sont effectuées lorsque toutes les opérations
d’écriture sur fd auront été transmises. Les entrées qui n’ont
pas été traitées seront éliminées avant de faire les
modifications.
Mode canonique et non canonique
La valeur du bit ICANON dans c_lflag détermine si le terminal est dans
le mode canonique (ICANON positionné) ou non canonique (ICANON non
positionné). Par défaut, ICANON est positionné.
Dans le mode canonique :
* L’entrée est rendue disponible ligne à ligne. Une ligne d’entrée est
disponible quand un délimiteur de ligne (NL, EOL, EOL2 ou EOF au
début d’une ligne). Sauf dans le cas de EOF, le délimiteur de ligne
est inclus dans le tampon renvoyé par read(2).
* L’édition des lignes est activée (ERASE, KILL ; et si le bit IEXTEN
est positionné : WERASE, REPRINT, LNEXT). Un read(2) renverra au plus
une ligne de l’entrée ; si le read(2) a demandé moins de caractères
que disponibles dans la ligne en cours, seuls les octets demandés
seront lus, et les autres caractères seront disponibles pour les
read(2) suivants.
Dans le mode non canonique, l’entrée est disponible tout de suite (sans
que l’utilisateur ait à taper de caractère délimiteur de ligne) et
l’édition des lignes est désactivé. La valeur des paramètres MIN
(c_cc[VMIN]) et TIME (c_cc[VTIME]) détermine les circonstances dans
lesquelles read(2) se termine ; il y a quatre cas différents :
* MIN == 0; TIME == 0 : Si des données sont disponibles, read(2)
retourne immédiatement le nombre d’octets disponibles ou le nombre
d’octets demandés (le plus petit des deux). Si aucune donnée n’est
disponible, read(2) renvoie 0.
* MIN > 0; TIME == 0 : read(2) est bloquant jusqu’à ce que MIN octets
ou le nombre d’octets demandés soient disponibles, puis renvoie le
plus petit de ces nombres.
* MIN == 0; TIME > 0 : TIME spécifie une limite de temps en dixièmes de
seconde. Le décompte du temps est démarré lors de l’appel à read(2).
read(2) retourne si au moins un octet est disponible ou si la
temporisation expire. Si la temporisation expire sans qu’il n’y ait
eu de données disponibles, read(2) renvoie 0.
* MIN > 0; TIME > 0 : TIME spécifie une limite de temps en dixièmes de
seconde. Quand un premier caractère est disponible en entrée, la
temporisation est démarrée, puis remise à zéro à chaque caractère
reçu. read(2) retourne quand le nombre d’octets demandés ou MIN
octets ont été lus, ou si le délai entre deux octets est dépassé.
Comme la temporisation n’est démarrée que lors de la réception du
premier octet, au moins un octet sera lu par read(2).
Mode brut
cfmakeraw() place le terminal dans un mode proche du mode « raw » de
l’ancien pilote de terminal version 7 : l’entrée est disponible
caractère par caractère, il n’y a pas d’écho ni de traitement
particulier des caractères d’entrée ou sortie. Les attributs du
terminal sont fixés ainsi :
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;
Contrôle de la ligne
tcsendbreak() transmet un flux continu de bits à zéro pendant une dure
donnée si le terminal utilise une transmission série asynchrone. Si
dure vaut zéro, les bits à zéro sont émis pendant au moins 0,25
seconde, et pas plus de 0,5 seconde. Si dure est non nulle, l’émission
se fera pendant un temps dépendant de l’implémentation.
Si le terminal n’est pas connecté avec une liaison série asynchrone,
tcsendbreak() n’effectue aucune action.
tcdrain() attend que toutes les écritures sur l’objet référencé par fd
aient été transmises.
tcflush() élimine toutes les écritures sur l’objet fd pas encore
transmises, ainsi que les données reçues mais pas encore lues, ceci en
fonction de la valeur de queue_selector :
TCIFLUSH
efface les données reçues mais non lues.
TCOFLUSH
efface les données écrites mais non transmises.
TCIOFLUSH
efface à la fois les données reçues non lues, et les données
écrites non transmises.
tcflow() suspend la transmission ou la réception des données sur
l’objet référencé par fd, en fonction de la valeur de action :
TCOOFF suspend les transmissions.
TCOON redémarre les transmissions suspendues.
TCIOFF envoie un caractère STOP, ce qui demande au terminal de
suspendre toute transmission de données vers le système.
TCION envoie un caractère START, ce qui redémarre la transmission des
données depuis le terminal vers le système.
Lors de l’ouverture d’un terminal, ni ses sorties ni ses entrées ne
sont suspendues.
Vitesse de la ligne
Il est possible d’utiliser les fonctions suivantes pour lire ou écrire
la vitesse de communication du terminal, en utilisant la structure
termios. Les modifications ne prennent effet que lorsque la fonction
tcsetattr() a été invoquée et qu’elle a réussi.
Fixer une vitesse B0 demande au modem de raccrocher. La vitesse réelle
de communication correspondant à B38400 peut être modifiée avec
setserial(8).
Les vitesses en entrée et en sortie sont stockées dans la structure
termios.
cfgetospeed() renvoie la vitesse de sortie stockée dans la structure
termios pointée par termios_p.
cfsetospeed() fixe la vitesse de sortie stockée dans la structure
termios pointée par termios_p à la valeur vitesse, qui doit être l’une
des constantes suivantes :
B0
B50
B75
B110
B134
B150
B200
B300
B600
B1200
B1800
B2400
B4800
B9600
B19200
B38400
B57600
B115200
B230400
La vitesse nulle, B0, est utilisée pour terminer une connexion. Si B0
est indiquée, il n’y a aucune garantie d’état des lignes de contrôle du
modem. Normalement, ceci devrait déconnecter la ligne. CBAUDEX est un
masque pour les vitesses supérieures à celles définies dans POSIX.1
(supérieures ou égales à 57600). Ainsi, B57600 & CBAUDEX est non nulle.
cfgetispeed() renvoie la vitesse d’entrée stockée dans la structure
termios.
cfsetispeed() fixe la vitesse d’entrée stockée dans la structure
termios à la valeur vitesse, qui doit être spécifiée à l’aide d’une des
constantes Bnnn listées ci-dessus pour cfsetospeed(). Si la vitesse
d’entrée est mise à 0, elle prendra la même valeur que la vitesse de
sortie.
cfsetspeed() est une extension BSD 4.4. Elle prend les mêmes arguments
que cfsetispeed(), et fixe à la fois les vitesses d’entrée et de
sortie.
VALEUR RENVOYÉE
cfgetispeed() renvoie la vitesse d’entrée stockée dans la structure
termios.
cfgetospeed() renvoie la vitesse de sortie stockée dans la structure
termios.
Toutes les autres fonctions renvoient
0 si elle réussissent, et
-1 si elles échouent, auquel cas errno contient le code d’erreur.
Notez que tcsetattr() indique une réussite si une des modifications
peut être réalisée. Toutefois, pour effectuer plusieurs changements, il
peut être nécessaire de faire suivre cet appel d’une invocation de
tcgetattr() pour vérifier que les modifications ont bien été réalisées.
CONFORMITÉ
tcgetattr(), tcsetattr(), tcsendbreak(), tcdrain(), tcflush(),
tcflow(), cfgetispeed(), cfgetospeed(), cfsetispeed() et cfsetospeed()
sont spécifiés dans POSIX.1-2001.
cfmakeraw() et cfsetspeed() ne sont pas standard, mais sont disponibles
sur les BSD.
NOTES
Unix V7 et plusieurs systèmes ultérieurs avaient une liste de vitesse
de transmission où l’on rencontrait, après les quatorze valeurs
B0...B9600, les constantes EXTA et EXTB (« External A » et « External
B »). De nombreux systèmes étendent cette liste avec des vitesses bien
plus rapides.
L’effet d’une dure non nulle avec tcsendbreak() est variable. SunOS
indique un break pendant duration * N secondes, où N est au moins 0,25,
et au plus 0,5. Linux, AIX, DU, Tru64 envoie un break pendant duration
millisecondes. FreeBSD, NetBSD, HP-UX et MacOS ignorent la valeur
duration. Sous Solaris et Unixware, tcsendbreak() avec une duration non
nulle se comporte comme tcdrain().
VOIR AUSSI
stty(1), console_ioctl(4), tty_ioctl(4), setserial(8)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Nicolas François
<nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».