Eggdrop & Tcl

Base de connaissances eggdrop et tcl

Outils pour utilisateurs

Outils du site


tcl:fconfigure

fconfigure

Fixe et lit les options d'un canal

Syntaxe

fconfigure channelId
fconfigure channelId name
fconfigure channelId name value ?name value ...?

Description

La commande fconfigure fixe et lit les options des canaux. ChannelId identifie le canal pour lequel fixer ou consulter une option. Si aucun arguments name ou value ne sont fournis, la commande retourne une liste contenant des options alternées de noms et de valeurs pour le canal. Si name est fourni mais pas value alors la commande retourne la valeur courante de l 'option donnée. Si une ou plusieurs paires de name et value sont fournies, la commande fixe chacune des options désignées à la value correspondante; dans ce cas la valeur de retour est une chaîne vide.

Les options décrites ci-dessous sont supportées par tous les canaux. De plus, chaque type de canal peut ajouter les options qu'il est seul à supporter. Voir la page de manuel pour la commande qui crée chaque type de canaux pour les options que ce type de canal spécifique supporte. Par exemple, voyez la page de manuel de la commande socket pour ses options supplémentaires.

  • -blocking boolean L'option -blocking détermine si les opérations I/O sur le canal peuvent provoquer le blocage du processus. La valeur de l'option doit être une valeur booléenne correcte. Les canaux sont normalement en mode bloquant; si un canal est placé en mode non bloquant ceci affectera l'opération des commandes gets, read, puts, flush, et close; voyez la documentation de ces commandes pour les détails. Pour que le mode non bloquant fonctionne correctement, l'application doit utiliser la boucle d’événement Tcl (ex. en appelant la commande vwait).
  • -buffering newValue Si newValue est full alors le système I /O mettra la sortie en tampon jusqu’à ce que son tampon interne soit plein ou jusqu’à ce que la commande flush soit appelée. Si newValue est line, alors le système I/O flushera automatiquement la sortie pour le canal chaque fois que un caractère newline est émis. Si newValue est none, le système I/O flushera automatiquement après tout opération de sortie. La valeur par défaut de -buffering est fixée à full excepté pour les canaux qui se connectent à des périphériques terminal-like; pour ces canaux la valeur initiale est line. De plus, stdin et stdout sont initialement fixés à line, et stderr est fixé à none.
  • -buffersize newSize Newvalue doit être un entier; sa valeur est utilisée pour fixer la taille, en octets, du tampon alloué pour ce canal pour stocker l'entrée ou la sortie. Newvalue doit être entre dix et un million, permettant des tampons d'une taille de dix à un million octets.
  • -encoding name Cette option est utilisée pour spécifier l'encodage du canal, ainsi les données peuvent être converties de et à partir d'Unicode pour être utilisées en Tcl. Par exemple, pour permettre à Tcl de lire des caractères d'un fichier Japonais en shiftjis et d'en traiter et d'afficher correctement le contenu, l'encodage devra être fixé à shiftjis. Ainsi, en lisant à partir du canal, les octets du fichier Japonais seront convertis en Unicode au fur et à mesure de leur lecture. L'écriture est aussi supportée quand les chaînes Tcl seront écrites dans le canal elles seront automatiquement converties en l'encodage spécifié pour la sortie. Si un fichier contient des données binaires pures (par exemple, une image JPEG), l'encodage du canal sera configuré en binary. Tcl alors n'assignera aucune interprétation aux données dans le fichier et simplement lira ou écrira des octets. La commande Tcl binary peut être utilisée pour manipuler ces données orientées-octet. L'encodage par défaut pour les canaux nouvellement ouverts est le même que le système d'encodage utilisé pour l 'interface avec le système d'exploitation.
  • -eofchar char
  • -eofchar {inChar outChar} Cette option supporte le système de fichiers DOS qui utilise Control-z (\x1a) comme marqueur de fin de fichier. Si char n'est pas une chaîne vide, alors ce caractère signale fin-de-fichier quand il est rencontré pendant l'entrée. Pour la sortie, le caractère fin-de-fichier est émis quand le canal est fermé. Si char est la chaîne vide, alors il n'y a pas de caractère spécial marqueur de fin de fichier. Pour les canaux en lecture-écriture, une liste à deux-élément spécifie le marqueur de fin de fichier pour l'entrée et la sortie, respectivement. Comme convénience, quand vous fixez le caractère de fin-de-fichier pour un canal en lecture-écriture vous pouvez spécifier une simple valeur qui s'appliquera à la fois à la lecture et à l'écriture. Quand vous interrogez le caractère de fin-de-fichier d'un canal en lecture-écriture, une liste à deux-éléments sera toujours renvoyée. La valeur par défaut de -eofchar est la chaîne vide dans tout les cas excepté pour les fichiers sous Windows. Dans ce cas, -eofchar est Control-z (\x1a) pour la lecture et la chaîne vide pour l'écriture.
  • -translation mode
  • -translation {inMode outMode} Dans les scripts Tcl la fin d'une ligne est toujours représentée en utilisant un simple caractère newline (\n). Néanmoins, dans les fichiers et périphériques la fin d'une ligne peut être représentée différemment sur différentes plates-formes, ou même pour différents périphériques sur la même plate-forme. Par exemple, sous UNIX les saut de lignes sont utilisés dans les fichiers, alors que les séquences retour-chariot/linefeed sont normalement utilisées dans les connections réseau. En entrée (ex., avec gets et read) le système I/O Tcl traduit automatiquement traduit la représentation fin-de-ligne externe en caractères newline. En sortie (ex., avec puts), le système I/O traduit le saut de lignes en représentation externe fin-de-ligne. Le mode de traduction par défaut, auto, gère tout les cas communs automatiquement, mais l'option -translation fournit un contrôle explicite des traductions de fin de ligne. La valeur associée à -translation est un simple item pour les canaux lecture-seule et écriture-seule. La valeur est une liste à deux-élément pour les canaux en lecture-écriture; le mode de traduction de lecture est le premier élément de la liste, et le mode de traduction d'écriture est le second élément. Comme convénience, quand vous fixez le mode de traduction pour un canal en lecture-écriture vous pouvez spécifier une seule valeur qui s'appliquera autant à la lecture qu'à l'écriture. Quand vous demandez le mode de traduction d'un canal lecture-écriture, une liste à deux-éléments sera toujours renvoyée. Les valeurs suivantes sont couramment supportées:
    • auto Comme mode traduction d'entrée, auto traite newline (lf), retour chariot (cr), ou retour chariot suivi par une newline (crlf) comme la représentation de fin de ligne. La représentation de fin de ligne peut même changer d'une ligne à l'autre, et tout les cas sont traduits en newline. Comme mode de traduction de sortie, auto choisit une représentation spécifique à la plateforme; pour les sockets sur toutes les plates-formes Tcl choisit crlf, pour tous les Unix, il choisit lf, pour la plate-forme Macintosh il choisit cr et pour les différentes versions de Windows il choisit crlf. La valeur par défaut de -translation est auto pour l'entrée et la sortie.
    • binary Aucunes traductions fin de ligne ne sont effectuées. Ceci est presque identique au mode lf, excepté qu'en plus le mode binary fixe aussi le caractère fin-de-fichier à la chaîne vide (qui le désactive) et fixe l'encodage à binary (qui désactive le filtrage par l'encodage). Voir la description de -eofchar et -encoding pour plus d'information.
    • cr La fin d'une ligne dans le fichier ou périphérique sous-jacent est représentée par un simple caractère retour chariot. Comme mode de traduction d'entrée, le mode cr convertit les retours chariot en caractères newline. Comme le mode de traduction de sortie, le mode cr traduit les caractères newline en retour chariot. Ce mode est typiquement utilisé sur les plates-formes Macintosh.
    • crlf La fin d'une ligne dans le fichier ou périphérique sous-jacent est représentée par un caractère retour chariot suivi par un caractère linefeed. Comme mode de traduction d'entrée,le mode crlf convertit le séquences retour chariot /linefeed en caractères newline. Comme mode de traduction de sortie, le mode crlf traduit caractères newline en séquences retour chariot /linefeed. Ce mode est principalement utilisé sur les plates-formes Windows et pour les connections réseau.
    • lf la fin d'une ligne dans le fichier ou périphérique sous-jacent est représentée par un seul caractère newline ; Dans ce mode, aucune traduction ne se fait pendant soit l'entrée soit la sortie. Ce mode est utilisé principalement sur les plates-formes UNIX.

Exemples

Voir aussi

tcl/fconfigure.txt · Dernière modification : 2023/10/11 12:54 de CrazyCat