Loading

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> ».