projman/hlp/fr/tcl/open.htm
2015-10-19 14:27:31 +04:00

94 lines
13 KiB
HTML

<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é 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 être employé 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ère de <i>fileName</i> n'est pas <b>|</b> alors la commande ouvre un fichier: <i>fileName</i> donne le nom du fichier à 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ésent, indique la façon de laquelle le fichier (ou commande pipeline) sera accédé. Dans la premiè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à exister. C'est la valeur par défaut si <i>access</i> n'est pas spécifié.
</DD>
<DT><b>r+</b></DT><DD>Ouvre le fichier pour la lecture et l'écriture; le fichier doit déjà exister.
</DD>
<DT><b>w</b></DT><DD>Ouvre le fichier pour l'écriture seulement. Le tronque s'il existe. S'il n'existe pas, crée un nouveau fichier.
</DD>
<DT><b>w+</b></DT><DD>Ouvre le fichier pour la lecture et l'écriture. Le tronque s'il existe. S'il n'existe pas, crée un nouveau fichier.
</DD>
<DT><b>a</b></DT><DD>Ouvre le fichier pour l'écriture seulement. Si le fichier n'existe pas, crée un nouveau fichier vide. Positionne le curseur à la fin du fichier.
</DD>
<DT><b>a+</b></DT><DD>Ouvre le fichier pour la lecture et l'écriture. Si le fichier n'existe pas, crée un nouveau fichier vide. Positionne le curseur à 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 ê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'écriture seulement.</DD>
<DT><b>RDWR</b></DT><DD>Ouvre le fichier en lecture et écriture.</DD>
<DT><b>APPEND</b></DT><DD>Positionne le curseur à la fin du fichier avant chaque écriture. </DD>
<DT><b>CREAT</b></DT><DD>Crée le fichier s'il n'existe pas déjà.</DD>
<DT><b>EXCL</b></DT><DD>Si <b>CREAT</b> est également spécifié, une erreur est générée si le fichier existe déjà.
</DD>
<DT><b>NOCTTY</b></DT><DD>Si le fichier est un terminal, ce flag empêche le fichier de devenir le terminal de contrôle du processus.
</DD>
<DT><b>NONBLOCK</b></DT><DD>Empêche le processus de bloquer pendant l'ouverture du fichier, et eventuellement pendant les opérations I/O suivantes. Le comportement exact de ce flag est système- et périphérique-dependant; son emploi est déconseillé (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 à la documentation de votre système sur le flag<b> O_NONBLOCK </b>de l'appel système<b> open</b>
</DD>
<DT><b>TRUNC</b></DT><DD>Si le fichier existe il est tronqué à longueur zéro.
</DD>
</DL>
</div>
<div ALIGN="LEFT" style="margin-left: 51px;">Si un nouveau fichier est créé en même temps qu'ouvert, <i>permissions</i> (un entier) est utilisé pour fixer les permissions pour le nouveau fichier en conjonction avec le masque de cré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ère de <i>fileName</i> est &quot;|&quot; alors les caractères restants de <i>fileName</i> sont traités comme une liste d'arguments qui decrivent un pipeline à appeler, dans le même style que les arguments à <A HREF="105.htm"><b>exec</b></A>. Dans ce cas, l'identificateur de canal renvoyé par <b>open</b> peut être employé pour écrire à l'entrée du pipe ou lire de sa sortie, dépendant de la valeur de <i>access</i>. Si un accès écriture-seule est utilisé (ex. <i>access</i> est <b>w</b>), alors la sortie standard du pipeline est dirigée vers la sortie standard courante sauf si ecrasé par la commande. Si un accès lecture-seule est utilisé (ex. <i>access</i> est <b>r</b>), l'entrée standard du pipeline est prise de l'entrée standard courante sauf si ecrasé 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ère à un port série, alors le port série spécifié est ouvert et initialisé d'une maniè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 être utilisé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ées par des virgules: le baud rate, parité, nombre de bits de données, et nombre de bits stop pour ce port série. Le <i>baud</i> rate est un simple entier qui spé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é &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ées et sera un entier de 5 à 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ée pour fixer le temps maximum entre l'ecoute d'évènements fichier. Ceci affecte le intervalle de temps de vérification d'évènements par l'interpréteur Tcl (la plus petite valeur l'emporte toujours). Utilisez cette option seulement si vous voulez é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 être que signalé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érale I/O fichier. <b>fconfigure -lasterror</b> peut être appelé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éralement de 1 à 4. Cette notation fonctionne seulement pour les port séries de 1 à 9, si le système en a plus que quatre. Une tentative d'ouvrir un port série qui n'existe pas ou a un nombre supérieur à 9 é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 à 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écutez Tcl interactivement, il peut y avoir des interactions étranges entre la console réelle, si elle est présente, et une commande pipeline qui utilise l'entrée ou la sortie standard. Si une commande pipeline est ouverte pour la lecture, toutes les lignes entrées sur la console seront envoyées à la commande pipeline puis à l'evaluateur Tcl. Si une commande pipeline est ouverte pour l'écriture, les frappes de touches entrées sur la console ne seront pas visible jusqu'a ce que le le pipe soit fermé. Ce comportement se produit si la commande pipeline est une application 16-bit ou 32-bit. Ces problèmes se produisent seulement parce que à la fois Tcl et application enfant essayent d'acceder à la console en même temps. Si la commande pipeline est lancée à partir d'un script, Tcl n'accède pas à la console, ou si la commande pipeline n'utilise pas l'entrée ou la sortie, standard mais est redirigée à partir ou vers un fichier, alors les problèmes vus plus haut ne se produisent pas. </DD>
<DT><b>Windows 95</b> </DT><DD>Une commande pipeline qui exécute une application DOS 16-bit ne peut pas être ouvert en lecture et écriture, car les applications DOS 16-bit qui recoivent l'entrée standard d'un pipe et envoient la sortie standard dans un pipe sont exécutées de manière synchrone. Les commande pipelines qui n'exécutent pas d'applications DOS 16-bit sont exécutées de manière asynchrone et peuvent être ouvertes en lecture et écriture. <br>
Quand vous exécutez Tcl interactivement, il peut y avoir des interactions étranges entre la console réelle, si elle est présente, et une commande pipeline qui utilise l'entrée ou la sortie standard. Si une commande pipeline est ouvert pour la lecture à partir d'une application 32-bit, , les frappes de touches entrées sur la console seront envoyées à la commande pipeline et puis à l'evaluateur Tcl. Si une commande pipeline est ouvert pour l'écriture sur une application 32-bit, aucune sortie n'est visible sur la console jusqu'a ce que le le pipe soit fermé. Ces problèmes se produisent seulement parce que à la fois Tcl et application enfant essayent d'acceder à la console en même temps. Si la commande pipeline est lancée à partir d'un script, Tcl n'accède pas à la console, ou si la commande pipeline n'utilise pas l'entrée ou la sortie, standard mais est redirigée à partir ou vers un fichier, alors les problèmes vus plus haut ne se produisent pas.
Que Tcl s'exécute interactivement ou non, si une commande pipeline est ouvert pour la lecture à partir une application 16-bit DOS, l'appel de <b>open</b> ne retourne pas jusqu'a ce que la fin-de-fichier avoir été transmise à la sortie standard du pipeline. Si un pipeline est ouvert pour l'écriture sur une application 16-bit DOS, aucune donnée ne sera envoyées à la sortie standard du pipeline jusqu'a ce que le pipe soit fermé. Ce problème se produit parce que les applications 16-bit DOS sont exécutées de manière synchrone, comme décrit plus haut.
</DD>
<DT><b>Macintosh</b></DT><DD>Ouvrir un port série n'est pas encore implémenté sous Macintosh. <br>
Ouvrir un pipeline n'est pas supporté sous Macintosh, car les applications ne supportent pas le concept d'entré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é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 être employé. <br>
Quand vous exécutez Tcl interactivement, il peut y avoir des interactions étranges entre la console réelle, si elle est présente, et une commande pipeline qui utilise l'entrée ou la sortie standard. Si une commande pipeline est ouvert pour la lecture, toutes lignes entrées sur la console seront envoyées au pipeline et puis à l'evaluateur Tcl. Ces problèmes se produisent seulement parce que à la fois Tcl et application enfant essayent d'acceder à la console en même temps. Si la commande pipeline lancée à partir d'un script, Tcl n'accède pas à la console, ou si la commande pipeline n'utilise pas l'entrée ou la sortie, standard mais est redirigée à partir ou vers un fichier, alors les problè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émentaire non spécifique au pipelines au sujet de l'exécution d'applications sur les diffé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è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écédent</b></A>&nbsp;&nbsp;<A HREF="143.htm"><b>Suivant</b></A></div>
</BODY></HTML>