projman/hlp/fr/tcl/open.htm

94 lines
13 KiB
HTML
Raw Normal View History

2015-10-19 13:27:31 +03:00
<HTML><HEAD>
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
</HEAD>
<BODY>
<div><H3><b>open&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commandes Internes Tcl</b></H3></div>
<HR ALIGN="center">
<div><b>NOM</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">open - Ouvre un canal bas<61> fichier ou un pipeline
</div><br>
<div><b>SYNTAXE</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><br>
<b>open </b><i>fileName</i> <br>
<b>open </b><i>fileName access</i> <br>
<b>open </b><i>fileName access permissions</i>
</div><br>
<div><b>DESCRIPTION</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Cette commande ouvre un fichier, un port s<>rie, ou un pipeline de commandes et retourne un identificateur de canal qui peut <20>tre employ<6F> dans les appels suivants des commandes comme <A HREF="151.htm"><b>read</b></A>, <A HREF="148.htm"><b>puts</b></A>, et <A HREF="97.htm"><b>close</b></A>. Si le premier caract<63>re de <i>fileName</i> n'est pas <b>|</b> alors la commande ouvre un fichier: <i>fileName</i> donne le nom du fichier <20> ouvrir, et il doit se conformer aux conventions d<>crite dans la page de manuel<A HREF="113.htm"><b> filename</b></A>. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">L'argument<i> access</i>, si pr<70>sent, indique la fa<66>on de laquelle le fichier (ou commande pipeline) sera acc<63>d<EFBFBD>. Dans la premi<6D>re forme <i>access</i> peut avoir quelconque des valeurs suivantes:
<DL>
<DT><b>r</b></DT><DD>Ouvre le fichier pour la lecture seulement; le fichier doit d<>j<EFBFBD> exister. C'est la valeur par d<>faut si <i>access</i> n'est pas sp<73>cifi<66>.
</DD>
<DT><b>r+</b></DT><DD>Ouvre le fichier pour la lecture et l'<27>criture; le fichier doit d<>j<EFBFBD> exister.
</DD>
<DT><b>w</b></DT><DD>Ouvre le fichier pour l'<27>criture seulement. Le tronque s'il existe. S'il n'existe pas, cr<63>e un nouveau fichier.
</DD>
<DT><b>w+</b></DT><DD>Ouvre le fichier pour la lecture et l'<27>criture. Le tronque s'il existe. S'il n'existe pas, cr<63>e un nouveau fichier.
</DD>
<DT><b>a</b></DT><DD>Ouvre le fichier pour l'<27>criture seulement. Si le fichier n'existe pas, cr<63>e un nouveau fichier vide. Positionne le curseur <20> la fin du fichier.
</DD>
<DT><b>a+</b></DT><DD>Ouvre le fichier pour la lecture et l'<27>criture. Si le fichier n'existe pas, cr<63>e un nouveau fichier vide. Positionne le curseur <20> la fin du fichier.
</DD>
</DL>
</div>
<div ALIGN="LEFT" style="margin-left: 51px;">Dans la seconde forme, <i>access</i> consiste en une liste de quelconque des flags suivants, chacun d'eux ayant la signification standard POSIX. Un des flags doit <20>tre soit <b>RDONLY</b>, <b>WRONLY</b> ou <b>RDWR</b>.
<DL>
<DT><b>RDONLY</b></DT><DD>Ouvre le fichier pour la lecture seulement. </DD>
<DT><b>WRONLY</b></DT><DD>Ouvre le fichier pour l'<27>criture seulement.</DD>
<DT><b>RDWR</b></DT><DD>Ouvre le fichier en lecture et <20>criture.</DD>
<DT><b>APPEND</b></DT><DD>Positionne le curseur <20> la fin du fichier avant chaque <20>criture. </DD>
<DT><b>CREAT</b></DT><DD>Cr<EFBFBD>e le fichier s'il n'existe pas d<>j<EFBFBD>.</DD>
<DT><b>EXCL</b></DT><DD>Si <b>CREAT</b> est <20>galement sp<73>cifi<66>, une erreur est g<>n<EFBFBD>r<EFBFBD>e si le fichier existe d<>j<EFBFBD>.
</DD>
<DT><b>NOCTTY</b></DT><DD>Si le fichier est un terminal, ce flag emp<6D>che le fichier de devenir le terminal de contr<74>le du processus.
</DD>
<DT><b>NONBLOCK</b></DT><DD>Emp<EFBFBD>che le processus de bloquer pendant l'ouverture du fichier, et eventuellement pendant les op<6F>rations I/O suivantes. Le comportement exact de ce flag est syst<73>me- et p<>riph<70>rique-dependant; son emploi est d<>conseill<6C> (il vaut mieux utiliser la commande <A HREF="109.htm"><b>fconfigure</b></A> pour mettre un fichier en mode non bloquant). Pour des d<>tails se referer <20> la documentation de votre syst<73>me sur le flag<b> O_NONBLOCK </b>de l'appel syst<73>me<b> open</b>
</DD>
<DT><b>TRUNC</b></DT><DD>Si le fichier existe il est tronqu<71> <20> longueur z<>ro.
</DD>
</DL>
</div>
<div ALIGN="LEFT" style="margin-left: 51px;">Si un nouveau fichier est cr<63><72> en m<>me temps qu'ouvert, <i>permissions</i> (un entier) est utilis<69> pour fixer les permissions pour le nouveau fichier en conjonction avec le masque de cr<63>ation fichier. <i>Permissions</i> est par d<>faut de 0666.
</div><br>
<div><b>PIPELINES</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Si le premier caract<63>re de <i>fileName</i> est &quot;|&quot; alors les caract<63>res restants de <i>fileName</i> sont trait<69>s comme une liste d'arguments qui decrivent un pipeline <20> appeler, dans le m<>me style que les arguments <20> <A HREF="105.htm"><b>exec</b></A>. Dans ce cas, l'identificateur de canal renvoy<6F> par <b>open</b> peut <20>tre employ<6F> pour <20>crire <20> l'entr<74>e du pipe ou lire de sa sortie, d<>pendant de la valeur de <i>access</i>. Si un acc<63>s <20>criture-seule est utilis<69> (ex. <i>access</i> est <b>w</b>), alors la sortie standard du pipeline est dirig<69>e vers la sortie standard courante sauf si ecras<61> par la commande. Si un acc<63>s lecture-seule est utilis<69> (ex. <i>access</i> est <b>r</b>), l'entr<74>e standard du pipeline est prise de l'entr<74>e standard courante sauf si ecras<61> par la commande.
</div><br>
<div><b>COMMUNICATIONS SERIE</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Si <i>fileName</i> se ref<65>re <20> un port s<>rie, alors le port s<>rie sp<73>cifi<66> est ouvert et initialis<69> d'une mani<6E>re plateforme-dependante. Les valeurs acceptables de <i>fileName</i> pour ouvrir un port s<>rie sont d<>crites dans la section<b> PROBLEMES DE PORTABILITE</b>.
</div><br>
<div><b>OPTIONS DE CONFIGURATION</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">La commande <A HREF="109.htm"><b>fconfigure</b></A> peut <20>tre utilis<69>e pour consulter et fixer les options de configuration suivantes pour ouvrir un port s<>rie:
<DL>
<DT><b>-mode </b><i>baud</i><b>,</b><i>parity</i><b>,</b><i>data</i><b>,</b><i>stop</i></DT><DD>Cette option est un ensemble de 4 valeurs s<>par<61>es par des virgules: le baud rate, parit<69>, nombre de bits de donn<6E>es, et nombre de bits stop pour ce port s<>rie. Le <i>baud</i> rate est un simple entier qui sp<73>cifie la vitesse de connection. <i>Parity</i> est une des lettres suivantes: <b>n</b>, <b>o</b>, <b>e</b>, <b>m</b>, <b>s</b>; signifiant respectivement les options de parit<69> &quot;aucune&quot;, &quot;impaire&quot;, &quot;paire&quot;, &quot;marque&quot;, ou &quot;espace&quot;. <i>Data</i> est le nombre de bits de donn<6E>es et sera un entier de 5 <20> 8, alors que <i>stop</i> est le nombre de bits de stop et sera l'entier 1 ou 2.
</DD>
<DT><b>-pollinterval </b><i>msec</i><br></DT><DD>Cette option, disponible seulement sous Windows pour les port s<>ries, est utilis<69>e pour fixer le temps maximum entre l'ecoute d'<27>v<EFBFBD>nements fichier. Ceci affecte le intervalle de temps de v<>rification d'<27>v<EFBFBD>nements par l'interpr<70>teur Tcl (la plus petite valeur l'emporte toujours). Utilisez cette option seulement si vous voulez <20>couter le port s<>rie plus souvent que 10 msec (la valeur par d<>faut).
</DD>
<DT><b>-lasterror</b><br></DT><DD>Cette option est disponible seulement sous Windows pour les port s<>ries, et est en lecture seule (ne peut <20>tre que signal<61>e). En cas d'une erreur de communication s<>rie, <A HREF="151.htm"><b>read</b></A> ou <A HREF="148.htm"><b>puts</b></A> retourne une erreur Tcl g<>n<EFBFBD>rale I/O fichier. <b>fconfigure -lasterror</b> peut <20>tre appel<65>e pour obtenir une liste des details d'erreur (ex. FRAME RXOVER).
</DD>
</DL>
</div><br>
<div><b>PROBLEMES DE PORTABILITE</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">
<DL>
<DT><b>Windows </b>(toutes versions)</DT><DD>Les valeurs valides de <i>fileName</i> pour ouvrir un port s<>rie sont de la forme <b>com</b><i>X</i><b>:</b>, where <i>X</i> est un nombre, g<>n<EFBFBD>ralement de 1 <20> 4. Cette notation fonctionne seulement pour les port s<>ries de 1 <20> 9, si le syst<73>me en a plus que quatre. Une tentative d'ouvrir un port s<>rie qui n'existe pas ou a un nombre sup<75>rieur <20> 9 <20>chouera. Une forme alternative d'ouvrir des port s<>ries est d'utiliser le nom de fichier <b>&#92;&#92;.&#92;comX</b>, o<> X est un nombre quelconque qui correspond <20> un port s<>rie; veuillez noter que cette m<>thode est considerablement plus lente sous Windows 95 et Windows 98.
</DD>
<DT><b>Windows NT</b></DT><DD>Quand vous ex<65>cutez Tcl interactivement, il peut y avoir des interactions <20>tranges entre la console r<>elle, si elle est pr<70>sente, et une commande pipeline qui utilise l'entr<74>e ou la sortie standard. Si une commande pipeline est ouverte pour la lecture, toutes les lignes entr<74>es sur la console seront envoy<6F>es <20> la commande pipeline puis <20> l'evaluateur Tcl. Si une commande pipeline est ouverte pour l'<27>criture, les frappes de touches entr<74>es sur la console ne seront pas visible jusqu'a ce que le le pipe soit ferm<72>. Ce comportement se produit si la commande pipeline est une application 16-bit ou 32-bit. Ces probl<62>mes se produisent seulement parce que <20> la fois Tcl et application enfant essayent d'acceder <20> la console en m<>me temps. Si la commande pipeline est lanc<6E>e <20> partir d'un script, Tcl n'acc<63>de pas <20> la console, ou si la commande pipeline n'utilise pas l'entr<74>e ou la sortie, standard mais est redirig<69>e <20> partir ou vers un fichier, alors les probl<62>mes vus plus haut ne se produisent pas. </DD>
<DT><b>Windows 95</b> </DT><DD>Une commande pipeline qui ex<65>cute une application DOS 16-bit ne peut pas <20>tre ouvert en lecture et <20>criture, car les applications DOS 16-bit qui recoivent l'entr<74>e standard d'un pipe et envoient la sortie standard dans un pipe sont ex<65>cut<75>es de mani<6E>re synchrone. Les commande pipelines qui n'ex<65>cutent pas d'applications DOS 16-bit sont ex<65>cut<75>es de mani<6E>re asynchrone et peuvent <20>tre ouvertes en lecture et <20>criture. <br>
Quand vous ex<65>cutez Tcl interactivement, il peut y avoir des interactions <20>tranges entre la console r<>elle, si elle est pr<70>sente, et une commande pipeline qui utilise l'entr<74>e ou la sortie standard. Si une commande pipeline est ouvert pour la lecture <20> partir d'une application 32-bit, , les frappes de touches entr<74>es sur la console seront envoy<6F>es <20> la commande pipeline et puis <20> l'evaluateur Tcl. Si une commande pipeline est ouvert pour l'<27>criture sur une application 32-bit, aucune sortie n'est visible sur la console jusqu'a ce que le le pipe soit ferm<72>. Ces probl<62>mes se produisent seulement parce que <20> la fois Tcl et application enfant essayent d'acceder <20> la console en m<>me temps. Si la commande pipeline est lanc<6E>e <20> partir d'un script, Tcl n'acc<63>de pas <20> la console, ou si la commande pipeline n'utilise pas l'entr<74>e ou la sortie, standard mais est redirig<69>e <20> partir ou vers un fichier, alors les probl<62>mes vus plus haut ne se produisent pas.
Que Tcl s'ex<65>cute interactivement ou non, si une commande pipeline est ouvert pour la lecture <20> partir une application 16-bit DOS, l'appel de <b>open</b> ne retourne pas jusqu'a ce que la fin-de-fichier avoir <20>t<EFBFBD> transmise <20> la sortie standard du pipeline. Si un pipeline est ouvert pour l'<27>criture sur une application 16-bit DOS, aucune donn<6E>e ne sera envoy<6F>es <20> la sortie standard du pipeline jusqu'a ce que le pipe soit ferm<72>. Ce probl<62>me se produit parce que les applications 16-bit DOS sont ex<65>cut<75>es de mani<6E>re synchrone, comme d<>crit plus haut.
</DD>
<DT><b>Macintosh</b></DT><DD>Ouvrir un port s<>rie n'est pas encore impl<70>ment<6E> sous Macintosh. <br>
Ouvrir un pipeline n'est pas support<72> sous Macintosh, car les applications ne supportent pas le concept d'entr<74>e ou de sortie standard.
</DD>
<DT><b>Unix</b></DT><DD>Les valeurs valides de <i>fileName</i> pour ouvrir un port s<>rie sont g<>n<EFBFBD>ralement de la forme <b>/dev/tty</b><i>X</i>, o<> <i>X</i> est <b>a</b> ou <b>b</b>, mais le nom de tout pseudo-fichier qui pointe vers un port s<>rie peut <20>tre employ<6F>. <br>
Quand vous ex<65>cutez Tcl interactivement, il peut y avoir des interactions <20>tranges entre la console r<>elle, si elle est pr<70>sente, et une commande pipeline qui utilise l'entr<74>e ou la sortie standard. Si une commande pipeline est ouvert pour la lecture, toutes lignes entr<74>es sur la console seront envoy<6F>es au pipeline et puis <20> l'evaluateur Tcl. Ces probl<62>mes se produisent seulement parce que <20> la fois Tcl et application enfant essayent d'acceder <20> la console en m<>me temps. Si la commande pipeline lanc<6E>e <20> partir d'un script, Tcl n'acc<63>de pas <20> la console, ou si la commande pipeline n'utilise pas l'entr<74>e ou la sortie, standard mais est redirig<69>e <20> partir ou vers un fichier, alors les probl<62>mes vus plus haut ne se produisent pas. Voir la section <b>PROBLEMES DE PORTABILITE</b> de la commande <A HREF="105.htm"><b>exec</b></A> pour une information suppl<70>mentaire non sp<73>cifique au pipelines au sujet de l'ex<65>cution d'applications sur les diff<66>rentes plateformes
</DD>
</DL>
</div><br>
<div><b>VOIR EGALEMENT</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><A HREF="97.htm">close</A>(n), <A HREF="113.htm">filename</A>(n), <A HREF="118.htm">gets</A>(n), <A HREF="151.htm">read</A>(n), <A HREF="148.htm">puts</A>(n), <A HREF="105.htm">exec</A>(n) </div>
<div>Derni<EFBFBD>re r<>vision: 7.6</div><br>
<br>
<br><div ALIGN="CENTER"><A HREF="index.htm"><b>Index</b></A>&nbsp;&nbsp;<A HREF="141.htm"><b>Pr<EFBFBD>c<EFBFBD>dent</b></A>&nbsp;&nbsp;<A HREF="143.htm"><b>Suivant</b></A></div>
</BODY></HTML>