Provided by: manpages-fr-dev_4.13-4_all bug

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 durée);

       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 (consulter feature_test_macros(7)) :

       cfsetspeed(), cfmakeraw():
           Since glibc 2.19:
               _DEFAULT_SOURCE
           Glibc 2.19 and earlier:
               _BSD_SOURCE

DESCRIPTION

       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 spéciaux */

       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 (consultez 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.

       Constantes 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 If  this  bit  is  set,  input  bytes  with parity or framing errors are marked when passed to the
              program. This bit is meaningful only when INPCK is set and IGNPAR is not set.  The  way  erroneous
              bytes  are marked is with two preceding bytes, \377 and \0. Thus, the program actually reads three
              bytes for one erroneous byte received from the terminal. If a valid byte has the value  \377,  and
              ISTRIP  (see  below)  is not set, the program might confuse it with the prefix that marks a parity
              error. Therefore, a valid byte \377 is passed to the program as two  bytes,  \377  \377,  in  this
              case.

              If neither IGNPAR nor PARMRK is set, read a character with a parity error or framing error as \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 pour l'attribut c_oflag :

       OPOST  Traitement en sortie dépendant de l'implémentation.

       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  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 Horizontal tab delay mask. Values are TAB0, TAB1, TAB2, TAB3 (or XTABS, but see the BUGS section).
              A  value  of  TAB3,  that  is, XTABS, expands tabs to spaces (with tab stops every eight columns).
              [requires _BSD_SOURCE or _SVID_SOURCE or _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
              (not in POSIX) If ECHO is also set, terminal special characters other than  TAB,  NL,  START,  and
              STOP  are  echoed  as  ^X,  where X is the character with ASCII code 0x40 greater than the special
              character.  For  example,  character  0x08  (BS)  is  echoed  as  ^H.  [requires  _BSD_SOURCE   or
              _SVID_SOURCE]

       ECHOPRT
              (Pas  dans  POSIX)  Si  ICANON et ECHO 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 la  création  des  signaux  pour  les
              caractères INT, QUIT et SUSP.

       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 spéciaux.  Les  symboles  (valeurs  initiales)  et  significations
       sont :

       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.

       VDSUSP (Pas dans POSIX et non supporté sous Linux ; 031, EM, Ctrl-Y)  Caractère  de  suspension  retardée
              (DSUSP).  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.

       VEOF   (004,  EOT,  Ctrl-D)  Caractère  de  fin  de fichier (EOF). 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.

       VEOL   (0, NUL) Caractère fin de ligne supplémentaire (EOL). Reconnu quand ICANON est actif.

       VEOL2  (Pas dans POSIX ; 0, NUL) Encore un autre caractère fin de ligne (EOL2). Reconnu quand ICANON  est
              actif.

       VERASE (0177, DEL, rubout, ou 010, BS, Ctrl-H ou encore #) Caractère d'effacement (ERASE). 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.

       VINTR  (003, ETX, Ctrl-C, ou encore 0177, DEL, rubout) Caractère d'interruption (INTR). Envoie le  signal
              SIGINT. Reconnu quand ISIG est présent, et n'est pas transmis en entrée.

       VKILL  (025,  NAK, Ctrl-U ou Ctrl-X, ou encore @) Caractère Kill (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.

       VLNEXT (Pas dans POSIX ; 026, SYN, Ctrl-V) Suivant littéral (LNEXT). Protège le caractère suivant en  lui
              supprimant  toute  signification  spéciale.  Reconnu  quand  IEXTEN  est actif, et pas transmis en
              entrée.

       VMIN   Nombre minimal de caractères lors d'une lecture en mode non canonique (MIN).

       VQUIT  (034, FS, Ctrl-\) Caractère Quit (QUIT). Envoie le signal SIGQUIT. Reconnu quand ISIG est présent,
              et n'est pas transmis en entrée.

       VREPRINT
              (Pas dans POSIX ; 022, DC2, Ctrl-R) Réafficher les caractères pas encore  lus  (REPRINT).  Reconnu
              quand ICANON et IEXTEN sont actifs, et pas transmis en entrée.

       VSTART (021,  DC1, Ctrl-Q) Caractère de démarrage (START). Relance la sortie interrompue par un caractère
              d'arrêt. Reconnu quand IXON est actif, et pas transmis en entrée.

       VSTATUS
              (Pas dans POSIX, non supporté sous Linux ; 024, DC4, Ctrl-T). Caractère d'état  (STATUS).  Affiche
              sur  le  terminal  des informations sur l'état, incluant l'état du processus en premier plan et la
              quantité de temps CPU qu'il a consommé. Envoie aussi un signal SIGINFO (not supporté par Linux) au
              groupe du processus de premier plan.

       VSTOP  (023, DC3, Ctrl-S) Caractère d'arrêt  (STOP).  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 (SUSP). Envoie le signal SIGTSTP. Reconnu quand ISIG
              est actif, et pas transmis en entrée.

       VSWTCH (Pas dans POSIX et non supporté sous Linux ; 0, NUL) Caractère de basculement (SWTCH). Utilisé par
              System V pour basculer les shells dans des calques  (shell  layers),  notion  qui  a  précédée  le
              contrôle des travaux du shell.

       VTIME  Délai en dixièmes de seconde pour une lecture en mode non canonique (TIME).

       VWERASE
              (Pas  dans  POSIX ;  027,  ETB, Ctrl-W) Effacement de mot (WERASE). Reconnu quand ICANON et IEXTEN
              sont actifs, et pas transmis en entrée.

       Un caractère spécial de terminal isolé peut être désactivé en positionnant la valeur  de  l'élément  c_cc
       correspondant à _POSIX_VDISABLE.

       Les  valeurs  d'indices  ci-dessus  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() définit 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 option 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
       The setting of the ICANON canon flag in c_lflag determines whether the terminal is operating in canonical
       mode (ICANON set) or noncanonical mode (ICANON unset). By default, ICANON is set.

       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.

       – The maximum line length is 4096 chars (including the terminating newline character); lines longer  than
         4096  chars  are  truncated.  After 4095 characters, input processing (e.g., ISIG and ECHO* processing)
         continues, but any input data after 4095 characters up to (but not including) any  terminating  newline
         is  discarded. This ensures that the terminal can always receive more input until at least one line can
         be read.

       In noncanonical mode input is available immediately (without the user having  to  type  a  line-delimiter
       character),  no  input  processing  is performed, and line editing is disabled. The read buffer will only
       accept 4095 chars; this provides the necessary space for a newline char if the input mode is switched  to
       canonical. The settings of MIN (c_cc[VMIN])  and TIME (c_cc[VTIME])  determine the circumstances in which
       a read(2) completes; there are four distinct cases:

       MIN == 0, TIME == 0 (lecture de scrutation (polling))
              Si  des  données sont disponibles, read(2) renvoie 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 (lecture bloquante)
              read(2)  est  bloquant  jusqu'à ce que MIN octets soient disponibles, puis renvoie jusqu’au nombre
              d’octet demandés.

       MIN == 0, TIME > 0 (lecture avec délai)
              TIME indique une limite de temps en dixième de seconde. Le décompte  du  temps  commence  lors  de
              l'appel  à  read(2). read(2) se termine 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.  Si des données sont déjà disponibles au moment de l’appel à read(2), l’appel se comporte comme
              si les données étaient reçues immédiatement après l’appel.

       MIN > 0, TIME > 0 (lecture avec délai entre deux octets)
              TIME indique une limite de temps en dixième 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) se
              termine quand une des conditions suivantes est vraie.

              –  MIN octets ont été reçus.

              –  Le délai entre deux octets est dépassé.

              –  Le nombre d'octets demandés par read(2) a été reçu (POSIX ne spécifie pas  cette  condition  de
                 fin et d’autres implémentations de read(2) ne se terminent pas dans ce cas).

              Comme la temporisation n'est démarrée que lors de la réception du premier octet, au moins un octet
              sera  lu. Si des données sont déjà disponibles au moment de l’appel à read(2), l’appel se comporte
              comme si les données étaient reçues immédiatement après l’appel.

       POSIX ne spécifie pas si le réglage de l’attribut d’état de fichier O_NONBLOCK est  prioritaire  sur  les
       réglages  de  MIN  et TIME. Si O_NONBLOCK est défini, un read(2) en mode non canonique pourrait s’arrêter
       immédiatement, quelque soit le réglage de MIN ou TIME. De plus, si aucune donnée n’est disponible,  POSIX
       permet un read(2) en mode non canonique de renvoyer soit 0, soit -1 avec errno défini à EAGAIN.

   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 définis 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()  transmits a continuous stream of zero-valued bits for a specific duration, if the terminal
       is using asynchronous serial data transmission. If duration is zero, it transmits zero-valued bits for at
       least 0.25 seconds, and not more than 0.5 seconds. If duration is not zero, it sends zero-valued bits for
       some implementation-defined length of time.

       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.

       Définir 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()  définit  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() définit 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 définit à 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.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).
       ┌──────────────────────────────────────┬──────────────────────┬─────────┐
       │ InterfaceAttributValeur  │
       ├──────────────────────────────────────┼──────────────────────┼─────────┤
       │ tcgetattr(), tcsetattr(), tcdrain(), │ Sécurité des threads │ MT-Safe │
       │ tcflush(), tcflow(), tcsendbreak(),  │                      │         │
       │ cfmakeraw(), cfgetispeed(),          │                      │         │
       │ cfgetospeed(), cfsetispeed(),        │                      │         │
       │ cfsetospeed(), cfsetspeed()          │                      │         │
       └──────────────────────────────────────┴──────────────────────┴─────────┘

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 rencon‐
       trait, 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  durée  non  nulle  avec  tcsendbreak() est variable. SunOS indique un break pendant dura‐
       tion * 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().

BOGUES

       On the Alpha architecture before Linux 4.16 (and glibc before 2.28), the XTABS value was  different  from
       TAB3  and it was ignored by the N_TTY line discipline code of the terminal driver as a result (because as
       it wasn't part of the TABDLY mask).

VOIR AUSSI

       reset(1), setterm(1), stty(1), tput(1), tset(1), tty(1), ioctl_console(2), ioctl_tty(2), setserial(8)

COLOPHON

       Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des
       instructions pour signaler des anomalies et la dernière version de cette page  peuvent  être  trouvées  à
       l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>, Stéphan Rafin  <stephan.rafin@laposte.net>,  Thierry  Vignaud  <tvi‐
       gnaud@mandriva.com>,  François  Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fe‐
       vrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau  <jcristau@de‐
       bian.org>,   Thomas   Huriaux   <thomas.huriaux@gmail.com>,  Nicolas  François  <nicolas.francois@centra‐
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
       Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

       Cette traduction est une documentation libre ; veuillez vous  reporter  à  la  GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à de‐
       bian-l10n-french@lists.debian.org.

Linux                                             13 août 2020                                        TERMIOS(3)