puts Commandes Internes Tcl
NOM
puts - Ecrit dans un canal
SYNTAXE
puts ?-nonewline? ?channelId? string
DESCRIPTION
Ecrit les caractères donnés par
string dans le canal donné par
channelId.
ChannelId doit être un identificateur de canal tel que celui renvoyé par un précédent appel de
open ou
socket. It doit avoir été ouvert pour une sortie. Si aucun
channelId n'est spécifié alors il est par defaut de
stdout.
Puts normalement emet un caractère newline après
string, mais cette fonctionnalité peut être supprimé en specifiant le switch
- nonewline.
Les caractères newline dans la sortie sont traduits par
puts en séquences fin de ligne spécifique à la plate-forme en accord avec la valeur courante de l'option
-translation pour le canal (par exemple, sur les PCs les saut de lignes sont normalement remplacé avec carriage-return-linefeed séquences; sur Macintosh les saut de lignes sont normalement remplacé avec carriage- return). Voir la page de manuel
fconfigure pour une discussion sur la manière dans laquelle
fconfigure modifie la sortie.
Tcl met la sortie en tampon en interne, donc les caractères écrits avec
puts peuvent ne pas apparaitre immédiatement sur le fichier ou périphérique de sortie; Tcl retarde normalement la sortie jusqu'a ce que le tampon soit plein ou le canal fermé. Vous pouvez forcer la sortie à apparaitre immédiatement avec la commande
flush.
Quand le tampon de sortie est plein, la commande
puts bloquera normalement jusqu'a ce que toutes les données en tampon aient été acceptées pour sortie par le système d'exploitation. Si
channelId est en mode non bloquant alors la commande
puts ne bloquera pas même si le système d'exploitation ne peut pas accepter les données. Par contre, Tcl continue à mettre les données en tampon et les écrit en arrière-plan aussi vite que le sous-jacent fichier ou périphérique peut les accepter. L'application doit utiliser la boucle d'évènement Tcl pour que la sortie non bloquante fonctionne; autrement Tcl ne voit jamais que le fichier ou le périphérique est prèt à sortir plus de données. Il est possible pour une arbitrairement large quantité de données d'être en tampon pour un canal en mode non bloquant, ce qui peut consommer une large quantité de mémoire. Pour éviter de gaspiller la mémoire, les I/O nonbloquantes doivent normalement être utilisées d'une façon pilotée par évènement avec la commande
fileevent (n'appellez pas
puts à moins que vous ayez recemment notifié via un évènement fichier que le canal est prèt à afficher plus de données).
VOIR EGALEMENT
Dernière révision: 7.5