Provided by: manpages-fr-dev_4.17.0-2_all bug

NOM

       termios,   tcgetattr,   tcsetattr,   tcsendbreak,  tcdrain,  tcflush,  tcflow,  cfmakeraw,
       cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed - Configuration du terminal

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

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 duration);
       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 speed);
       int cfsetospeed(struct termios *termios_p, speed_t speed);
       int cfsetspeed(struct termios *termios_p, speed_t speed);

   Exigences   de   macros   de   test   de   fonctionnalités   pour    la    glibc    (consulter
   feature_test_macros(7)) :

       cfsetspeed(), cfmakeraw():
           Depuis la version 2.19 de la glibc :
               _DEFAULT_SOURCE
           Versions 2.19 et antérieures de la glibc :
               _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 The NL character is assumed to do the carriage-return function; the  kernel's  idea
              of the current column is set to 0 after both NL and 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 (not in POSIX) Mask for input speeds. The values for the CIBAUD bits are  the  same
              as  the values for the CBAUD bits, shifted left IBSHIFT bits. [requires _BSD_SOURCE
              or _SVID_SOURCE] (Not implemented in glibc,  supported  on  Linux  via  TCGET*  and
              TCSET* ioctls; see ioctl_tty(2))

       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
              B460800
              B500000
              B576000
              B921600
              B1000000
              B1152000
              B1500000
              B2000000

       These constants are additionally supported on the SPARC architecture:

              B76800
              B153600
              B307200
              B614400

       These constants are additionally supported on non-SPARC architectures:

              B2500000
              B3000000
              B3500000
              B4000000

       Due to  differences  between  architectures,  portable  applications  should  check  if  a
       particular Bnnn constant is defined prior to using it.

       The zero baud rate, B0, is used to terminate the connection. If B0 is specified, the modem
       control lines shall no longer be  asserted.  Normally,  this  will  disconnect  the  line.
       CBAUDEX  is a mask for the speeds beyond those defined in POSIX.1 (57600 and above). Thus,
       B57600 & CBAUDEX is nonzero.

       Setting the baud rate to a value other than those defined by Bnnn  constants  is  possible
       via the TCSETS2 ioctl; see ioctl_tty(2).

       cfgetispeed() renvoie la vitesse d'entrée stockée dans la structure termios.

       cfsetispeed()   sets  the  input baud rate stored in the termios structure to speed, which
       must be specified as one of the Bnnn constants listed  above  for  cfsetospeed().  If  the
       input baud rate is set to the literal constant 0 (not the symbolic constant B0), the input
       baud rate will be equal to the output baud rate.

       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(), tcflush(),         │ Sécurité des threads │ MT-Safe │
       │tcflow(), tcsendbreak(), cfmakeraw(), cfgetispeed(),    │                      │         │
       │cfgetospeed(), cfsetispeed(), cfsetospeed(),            │                      │         │
       │cfsetspeed()                                            │                      │         │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       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 and several later systems have a list of baud rates  where  after  the  values  B0
       through B9600 one finds the two constants EXTA, EXTB ("External A" and "External B"). Many
       systems extend the list with much higher baud rates.

       L'effet d'une durée 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().

BOGUES

       On the Alpha architecture before Linux 4.16 (and glibc before glibc 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),
       cc_t(3type), speed_t(3type), tcflag_t(3type), setserial(8)

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  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 à ⟨debian-l10n-french@lists.debian.org⟩.