Bash-Linux.com : Le SHELL pour les nuls

  Actuellement 46 lignes de commande disponibles
login as: root
root@213.186.33.18's password:
Last login: Sun Aug 1 8:11:16 2010 from 38.107.191.100
[root@bash-linux ~] # echo "Bienvenue sur Bash-Linux.com"_
 Manuel des commandes UNIX (man) Version française

Indiquez la fonction :

Man Tcgetattr en français

TERMIOS(3) Manuel du programmeur Linux TERMIOS(3)
 
NOM


termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfset- speed - Configuration du terminal.
 
SYNOPSIS


#include #include 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 duree); 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);
 
DESCRIPTION


Les fonctions termios etablissent une interface generale sous forme de terminal, permettant de controler les ports de communication asyn- chrone. Plusieurs fonctions decrites 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'entree */ tcflag_t c_oflag; /* modes de sortie */ tcflag_t c_cflag; /* modes de controle */ tcflag_t c_lflag; /* modes locaux */ cc_t c_cc[NCCS]; /* caracteres de controle */ Les valeurs qui peuvent etre affectees a ces champs sont decrites plus loin/ Dans le cas des quatre premiers champs masques de bits, les defi- nitions de certains des attributs associes qui peuvent etre positionnes ne sont exposes que si une macro specifique de test de fonctionnalites (voir feature_test_macros(7)) est definie, comme indiquee entre cro- chets ( [] ). Dans les descriptions plus loin, pas dans POSIX signifie que la valeur n'est pas specifiee dans POSIX.1-2001, et XSI signifie que la valeur est specifiee dans POSIX.1-2001 comme partie de l'extension XSI. Constante pour l'attribut c_iflag : IGNBRK ignorer les signaux BREAK en entree. BRKINT Si IGNBRK est indique, un caractere BREAK en entree est ignore. S'il n'est pas indique, mais si BRKINT est present, alors un BREAK videra les files d'attente en entree et sortie, et si le terminal controle un groupe de processus en avant-plan, un sig- nal SIGINT sera envoye a ce groupe. Si ni IGNBRK ni BRKINT ne sont indique, un caractere BREAK sera lu comme un octet nul ( \0 ), sauf si PARMRK est present, auquel cas il sera lu comme une sequence \377 \0 \0. IGNPAR Ignorer les erreurs de format et de parite. PARMRK Si IGNPAR n'est pas indique, un caractere ayant une erreur de parite ou de format est prefixe avec \377 \0. Si ni IGNPAR ni PARMRK ne sont indiques, un caractere contenant une erreur de parite ou de format est lu comme \0. INPCK Valider la verification de parite en entree. ISTRIP Eliminer le huitieme bit. INLCR Convertir NL en CR en entree. IGNCR Ignorer CR en entree. ICRNL Convertir CR en NL en entree, sauf si IGNCR est indique. IUCLC (Pas dans POSIX) Transformer les majuscules en minuscules en entree. IXON Valider le controle de flux XON/XOFF en sortie. IXANY (XSI) Redemarrer le flux de sortie par n'importe quel caractere. (Le comportement par defaut est de seulement permettre le carac- tere START pour redemarrer le flux de sortie.) IXOFF Valider le controle de flux XON/XOFF en entree.
 
IMAXBEL


(Pas dans POSIX) Faire sonner le terminal quand le tampon d'entree est plein. Linux n'implemente pas ce bit, et considere qu'il est toujours actif. Constantes POSIX.1 pour l'attribut c_oflag : OPOST traitement en sortie dependant de l'implementation. Les autres constantes pour c_oflag sont definies dans POSIX.1-2001 sauf indication contraire. OLCUC (Pas dans POSIX) Convertir les minuscules en majuscules en sor- tie. ONLCR (XSI) Convertir NL en CR-NL en sortie. OCRNL Convertir CR en NL en sortie. ONOCR Ne pas emettre de CR en colonne 0 ONLRET Ne pas emettre de CR OFILL Utiliser des caracteres de remplissage pour le delai, plutot qu'une temporisation. OFDEL (Pas dans POSIX) Le caractere de remplissage est ASCII DEL. Sinon c'est ASCII NUL ( \0 ). (Pas implemente sous Linux.) NLDLY Delai du saut de ligne. Les valeurs sont NL0 et NL1. [necessite _BSD_SOURCE ou _SVID_SOURCE ou _XOPEN_SOURCE] CRDLY Delai du retour chariot. Les valeurs sont CR0, CR1, CR2, ou CR3. [necessite _BSD_SOURCE ou _SVID_SOURCE ou _XOPEN_SOURCE] TABDLY Delai de tabulation horizontale. Les valeurs sont TAB0, TAB1, TAB2, TAB3, ou XTABS. Une valeur TAB3 , c'est-a-dire XTABS, convertit les tabulations en espaces (positions toutes les huit colonnes). [necessite _BSD_SOURCE ou _SVID_SOURCE ou _XOPEN_SOURCE] BSDLY Delai du retour en arriere (baskspace). Les valeurs sont BS0 ou BS1 (n'a jamais ete implemente). [necessite _BSD_SOURCE ou _SVID_SOURCE ou _XOPEN_SOURCE] VTDLY Delai de tabulation verticale. Les valeurs sont VT0 ou VT1. FFDLY Delai de saut de page. Les valeurs sont FF0 ou FF1. [necessite _BSD_SOURCE ou _SVID_SOURCE ou _XOPEN_SOURCE] Constantes pour l'attribut c_cflag : CBAUD (Pas dans POSIX) masque binaire des vitesses (4+1 bits). [necessite _BSD_SOURCE ou _SVID_SOURCE]
 
CBAUDEX


(Pas dans POSIX) masque binaire etendu des vitesses (1 bit) inclus dans CBAUD. [necessite _BSD_SOURCE ou _SVID_SOURCE] (POSIX dit que la vitesse est stockee dans une structure termios sans dire precisement ou, et fournit cfgetispeed() et cfsetispeed() pour la lire ou l'ecrire. Certains systemes utilisent les bits de CBAUD dans c_cflag, d'autres systemes utilisent des champs distincts, par exemple sg_ispeed et sg_ospeed). CSIZE Longueur des caracteres. Les valeurs sont CS5, CS6, CS7, ou CS8. CSTOPB Utiliser deux bits de stop plutot qu'un. CREAD Valider la reception. PARENB Valider le codage de parite en sortie, et la verification de parite en entree. PARODD Parite impaire en entree et sortie. HUPCL Abaisser les signaux de controle du modem lorsque le dernier processus referme le peripherique (raccrochement). CLOCAL Ignorer les signaux de controle du modem. LOBLK (Pas POSIX) Bloquer la sortie depuis un niveau de shell non-con- current. Utilise par shl (couches shell). (Pas implemente sous Linux.) CIBAUD (Pas dans POSIX) Vitesse d'entree (inutilisee). Les bits pour CIBAUD sont les memes que ceux de CBAUD, decales a gauche de IBSHIFT bits. [necessite _BSD_SOURCE ou _SVID_SOURCE] (Pas implemente sous Linux.)
 
CRTSCTS


(Pas dans POSIX) Controle de flux RTS/CTS. Constantes pour l'attribut c_lflag : [necessite _BSD_SOURCE ou _SVID_SOURCE] ISIG Lorsqu'un signal INTR, QUIT, SUSP, ou DSUSP arrivent, engendrer le signal correspondant. ICANON Mode canonique. Ceci permet l'utilisation des caracteres speci- aux EOF, EOL, EOL2, ERASE, KILL, LNEXT, REPRINT, STATUS, et WERASE, et configure les tampons par ligne. XCASE (Pas dans POSIX, non supporte sous Linux) Si ICANON est indique egalement, le terminal est en mode majuscule uniquement. Les entrees sont converties en minuscules, sauf pour les caracteres precedes par \. En sortie, les caracteres majuscules sont pre- cedes par \ et les minuscules sont converties en majuscules. ECHO Effectuer un echo des caracteres saisis. ECHOE Si ICANON est egalement active, la touche ERASE efface le carac- tere precedent, et WERASE efface le mot precedent. ECHOK Si ICANON est egalement active, la touche KILL efface la ligne en cours. ECHONL Si ICANON est egalement active, la touche NL dispose d'un echo local, meme si ECHO n'est pas active.
 
ECHOCTL


(Pas dans POSIX) Si ECHO est egalement active, les signaux de controle ASCII autres que TAB, NL, START, et STOP sont repre- sentes en echo local par ^X, ou X est le caractere dont le code ASCII est superieur de 0x40 a celui du signal de controle. par exemple 0x08 (BS) est represente par ^H. [necessite _BSD_SOURCE ou _SVID_SOURCE]
 
ECHOPRT


(Pas dans POSIX) Si ICANON et IECHO sont aussi actives, les car- acteres sont imprimes avant leur effacement. (?) [necessite _BSD_SOURCE ou _SVID_SOURCE] ECHOKE (Pas dans POSIX) Si ICANON est egalement active, la touche KILL efface chaque caractere de la ligne, comme indique par ECHOE et ECHOPRT. [necessite _BSD_SOURCE ou _SVID_SOURCE]
 
DEFECHO


(Pas dans POSIX) N'effectuer l'echo que lorsque le caractere est lu. (Pas implemente sous Linux.) FLUSHO (Pas dans POSIX, non supporte sous Linux) Le tampon de sortie est vide. Cet attribut est declenche en tappant le caractere DISCARD. [necessite _BSD_SOURCE ou _SVID_SOURCE] NOFLSH Desactive le vidage des files d'entree et de sortie pendant les signaux SIGINT et SIGQUIT, ainsi que le vidage de la file d'entree durant les signaux SIGSUSP. TOSTOP Envoie le signal SIGTTOU au groupe d'un processus en arriere- plan essayant d'ecrire sur son terminal de controle. PENDIN (Pas dans POSIX, non supporte sous Linux) Tous les caracteres de la file d'entree sont reimprimes quand le caractere suivant est lu. (bash utilise ceci pour la completion de commande.) [neces- site _BSD_SOURCE ou _SVID_SOURCE] IEXTEN Traitement de l'entree dependant de l'implementation Cet attribut, tout comme ICANON doit etre actif pour que les carac- teres speciaux EOL2, LNEXT, REPRINT, WERASE soit interpretes,et pour que l'attribut IUCLC prenne effet. Le tableau c_cc definit des caracteres de controle speciaux. Les sym- boles (valeurs initiales) et significations sont : VINTR (003, ETX, Ctrl-C, ou encore 0177, DEL, rubout), Caractere d'interruption. Envoie le signal SIGINT. Reconnu quand ISIG est present, et n'est pas transmis en entree. VQUIT (034, FS, Ctrl-\), Caractere Quit. Envoie le signal SIGQUIT. Reconnu quand ISIG est present, et n'est pas transmis en entree. VERASE (0177, DEL, Rubout, ou encore 010, BS, Ctrl-H), Caractere d'effacement. Ceci efface le caractere precedent pas encore efface, mais ne revient pas en-deca de EOF ou du debut de ligne. Reconnu quand ICANON est actif, et n'est pas transmis en entree. VKILL (025, NAK, Ctrl-U ou Ctrl-X, et aussi @), Caractere Kill. Celui efface tous les caracteres en entree, jusqu'au dernier EOF ou debut de ligne. Reconnu quand ICANON est actif, et pas transmis en entree. VEOF (004, EOT, Ctrl-D), Caractere de fin de fichier. Plus precise- ment : ce caractere oblige l'envoi du contenu du tampon vers le programme lecteur sans attendre la fin de ligne. S'il s'agit du premier caractere de la ligne, le read() renvoie zero dans le programme appelant, ce qui correspond a une fin de fichier. Reconnu quand ICANON est actif, et pas transmis en entree. VMIN Nombre minimum de caracteres lors d'une lecture en mode non- canonique. VEOL (0, NUL), Caractere fin de ligne supplementaire. Reconnu quand ICANON est actif. VTIME Delai en dixiemes de secondes pour une lecture en mode non- canonique. VEOL2 (Pas dans POSIX ; 0, NUL), Encore un autre caractere fin de ligne. Reconnu quand ICANON est actif. VSWTCH (Pas dans POSIX et non supporte sous Linux ; 0, NUL), Carctere de basculement (utilise uniquement par sh). VSTART (021, DC1, Ctrl-Q), Caractere de demarrage. Relance la sortie interrompue par un caractere d'arret. Reconnu quand IXON est actif, et pas transmis en entree. VSTOP (023, DC3, Ctrl-S), Caractere d'arret. Interrompt la sortie jusqu'a la pression d'un caractere de demarrage. Reconnu quand IXON est actif, et pas transmis en entree. VSUSP (032, SUB, Ctrl-Z), Caractere de suspension. Envoie le signal SIGTSTP. Reconnu quand ISIG est actif, et pas transmis en entree. VDSUSP (Pas dans POSIX et non supporte sous Linux ; 031, EM, Ctrl-Y), Caractere de suspension retardee. Envoie le signal SIGTSTP quand le caractere est lu par le programme utilisateur. Reconnu quand IEXTEN et ISIG sont actifs, et quand le systeme support le cont- role des jobs, et non transmis en entree. VLNEXT (Pas dans POSIX ; 026, SYN, Ctrl-V), Protegle le caractere suiv- ant en lui supprimant toute signification speciale. Reconnu quand IEXTEN est actif, et pas transmis en entree.
 
VWERASE


(Pas dans POSIX ; 027, ETB, Ctrl-W) Effacement de mot. Reconnu quand ICANON et IEXTEN sont actifs, et pas transmis en entree.
 
VREPRINT


(Pas dans POSIX ; 022, DC2, Ctrl-R), Reafficher les caracteres pas encore lus. Reconnu quand ICANON et IEXTEN sont actifs, et pas transmis en entree.
 
VDISCARD


(Pas dans POSIX, non supporte sous Linux ; 017, SI, Ctrl-O). Bascule start/stop pour ignorer les caracteres en attente de sortie. Reconnu quand IEXTEN est actif, et pas transmis en entree.
 
VSTATUS


(Pas dans POSIX, non supporte sous Linux ; 024, DC4, Ctrl-T) Interrogation d'etat. Ces valeurs sont toutes differentes, sauf VTIME, VMIN qui peuvent avoir la meme valeur de VEOL et VEOF respectivement. En mode non-canonnique, la signification d'un caractere special est remplacee par sa valeur de temporisation. MIN (indexee avec VMIN) represente le nombre minimum de caracteres a recevoir pour satisfaire une lecture. TIME (indexee avec VTIME) est une valeur en dixieme de seconde. Quand ils sont tout deux remplis, une lecture attendra au moins un caractere, et reviendra des que MIN caracteres auront ete recus, ou si le temps TIME est ecoule depuis la reception du dernier caractere. Si seul MIN est rempli, la lecture ne reviendra pas avant d'avoir recu MIN caracteres. Si seul TIME est rempli, la lecture reviendra des qu'un caractere arrivera, ou des que le delai sera ecoule. Si aucun n'est rempli, la lecture revien- dra immediatement, ne lisant que les caracteres immediatement disponibles. tcgetattr() obtient les parametres associes a l'objet reference par fd et les stocke dans la structure termios pointee par termios_p. Cette fonction peut etre appelee par un processus en arriere-plan, neanmoins, les attributs de terminal peuvent etre modifies par la suite par le processus en avant-plan. tcsetattr() fixe les parametres du terminal (a moins que le materiel sous-jacent ne le supporte pas) en lisant la structure termios pointee par termios_p. optional_actions precise QUAND les changements auront lieu :
 
TCSANOW


Les modifications sont effectuees immediatement.
 
TCSADRAIN


Les modifications sont effectuees lorsque toutes les operations d'ecriture sur fd auront ete transmises. Cette fonction devrait etre utilisee pour toute modification de parametre affectant les sorties.
 
TCSAFLUSH


Les modifications sont effectuees lorsque toutes les operations d'ecriture sur fd auront ete transmises. Les entrees qui n'ont pas ete traitees seront eliminees avant de faire les modifica- tions. tcsendbreak() transmet un flux continu de bits a zero pendant une duree donnee si le terminal utilise une transmission serie asynchrone. Si duree vaut zero, les bits a zero sont emis pendant au moins 0,25 sec- onde, et pas plus de 0,5 seconde. Si duree est non nul, l'emission se fera pendant un temps dependant de l'implementation. Si le terminal n'est pas connecte avec une liaison serie asynchrone, tcsendbreak() n'effecte aucune action. tcdrain() attend que toutes les ecritures sur l'objet reference par fd aient ete transmises. tcflush() elimine toutes les ecritures sur l'objet fd pas encore trans- mises, ainsi que les donnees recues mais pas encore lues, ceci en fonc- tion de la valeur de queue_selector :
 
TCIFLUSH


efface les donnees recues mais non lues.
 
TCOFLUSH


efface les donnees ecrites mais non transmises.
 
TCIOFLUSH


efface a la fois les donnees recues non lues, et les donnees ecrites non transmises. tcflow() suspend la transmission ou la reception des donnees sur l'objet reference par fd, en fonction de la valeur de action : TCOOFF suspend les transmissions TCOON redemarre les transmissions suspendues TCIOFF envoie un caractere STOP, ce qui demande au terminal de sus- pendre toute transmission de donnees vers le systeme. TCION envoie un caractere START, ce qui redemarre la transmission des donnees depuis le terminal vers le systeme. Lors de l'ouverture d'un terminal, ni ses sorties, ni ses entrees ne sont suspendues. On peut utiliser les fonctions suivantes pour lire ou ecrire la vitesse de communication du terminal, en utilisant la structure termios. Les modifications ne prennent effet que lorsque la fonction tcsetattr() a ete invoquee et qu'elle a reussit. Fixer une vitesse B0 demande au modem de racrocher. La vitesse reelle de communication correspondant a B38400 peut etre modifiee avec setse- rial(8). Les vitesses en entree et en sortie sont stockees dans la structure termios. cfmakeraw() fixe les attributs du terminal 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; cfgetospeed() renvoie la vitesse de sortie stockee dans la structure termios pointee par termios_p. cfsetospeed() fixe la vitesse de sortie stockee dans la structure termios pointee par termios_p a la valeur speed, qui doit etre 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 utilisee pour terminer une connexion. Si B0 est indiquee, il n'y a aucune garantie d'etat des lignes de controle du modem. Normalement, ceci devrait deconnecter la ligne. CBAUDEX est un masque pour les vitesses superieures a celles definies dans POSIX.1 (superieures ou egales a 57600). Ainsi, B57600 & CBAUDEX est non nulle. cfgetispeed() renvoie la vitesse d'entree stockee dans la structure termios. cfsetispeed() fixe la vitesse d'entree stockee dans la structure termios a la valeur speed, qui doit etre specifieecomme l'une des Bnnn constantes listees plus haut pour cfsetospeed(). Si la vitesse d'entree est mise a 0, elle prendra la meme valeur que la vitesse de sortie. cfsetspeed() est une extension BSD 4.4. Elle prend les memes arguments que cfsetispeed(), et permet de configurer les vitesses d'entree et de sortie.
 
VALEURS RENVOYEES


cfgetispeed() renvoie la vitesse d'entree stockee dans la structure termios. cfgetospeed() renvoie la vitesse de sortie stockee dans la structure termios. Toutes les autres fonctions renvoient 0 si elle reussissent, et -1 si elles echouent, auquel cas errno contient le code d'erreur. Notez que tcsetattr() indique une reussite si une des modifications peut etre realisee. Toutefois, pour effectuer plusieurs changements, il peut etre necessaire de faire suivre cet appel d'une invocation de tcgetattr() pour verifier que les modifications ont bien ete realisees.
 
NOTES


Unix V7 et plusieurs systemes ulterieurs avaient une liste de vitesse de transmission ou l'on rencontrait, apres les quatorzes valeurs B0...B9600, les constantes EXTA, EXTB ( External A et External B ). De nombreux systemes etendent cette liste avec des vitesses bien plus rapides. L'effet d'une duree non nulle avec tcsendbreak() est variable. SunOS indique une break pendant duree*N secondes, ou N est au moins 0,25, et au plus 0,5. Linux, AIX, DU, Tru64 envoie un break pendant duree mil- lisecondes. FreeBSD, NetBSD, HP-UX et MacOS ignorent la valeur duree. Sous Solaris et Unixware, tcsendbreak() avec une duree non nulle, se comporte comme tcdrain().
 
VOIR AUSSI


stty(1), feature_test_macros(7), setserial(8)
 
TRADUCTION


Ce document est une traduction realisee par Christophe Blaess le 29 novembre 1996 et revisee le 14 aot 2006. L'equipe de traduction a fait le maximum pour realiser une adaptation francaise de qualite. La version anglaise la plus a jour de ce document est toujours consultable via la commande : LANG=C man 3 termios . N'hesitez pas a signaler a l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. LDP 31 octobre 2004 TERMIOS(3)


 Dernières recherches
Man  en anglais Man tcgetattr en anglaisMan  en français Man tcgetattr en français
Man  en anglais Man fgetgrent en anglaisMan  en français Man fgetgrent en français
Man  en anglais Man qmgr en anglaisMan  en français Man qmgr en français
Man  en anglais Man mq_open en anglaisMan  en français Man mq_open en français
Man  en anglais Man getgid en anglaisMan  en français Man getgid en français
Man  en anglais Man rint en anglaisMan  en français Man rint en français
Man  en anglais Man exp en anglaisMan  en français Man exp en français
Man  en anglais Man ascii en anglaisMan  en français Man ascii en français
Man  en anglais Man perror en anglaisMan  en français Man perror en français
Man  en anglais Man motd en anglaisMan  en français Man motd en français
Man  en anglais Man fnmatch en anglaisMan  en français Man fnmatch en français
Man  en anglais Man versionsort en anglaisMan  en français Man versionsort en français
Man  en anglais Man wcscasecmp en anglaisMan  en français Man wcscasecmp en français
Man  en anglais Man inet_aton en anglaisMan  en français Man inet_aton en français
Man  en anglais Man env en anglaisMan  en français Man env en français

 Recherche

Dans ce moteur de recherche, vous pouvez taper directement votre besoin, en une phrase normale, humaine.
Exemple : vous cherchez comment remplacer un mot par un autre dans tous les fichiers d'un certain dossier. Vous pouvez écrire "Comment remplacer un mot par un autre dans tous les fichiers d'un dossier". Le moteur vous ramenera les résultats en fonction de leur pertinence.
Vous pouvez bien sûr ne chercher qu'un seul mot-clé, par exemple "find".
 Toutes les lignes de code
Par popularité
Par fonction
Recherche avancée
 Les logiciels SHELL/SSH
Putty
Astuces Bash
Faire du SHELL avec PHP!
 La doc officielle
Les man Linux en français
Les man Linux en anglais
 Proposer vos bash
Partagez vos lignes!
 Les requêtes
Déposer une requête
Voir/répondre à une requête
 Quelques sites interessants
Bons sites pour apprendre
 Rechercher