Les variables globales suivantes sont créée et gérées automatiquement par les bibliothèque Tcl. Excepté quand signalé ci-dessous, ces variables doivent normalement être traitées en lecture seule par le code spécifique à l'application et par les utilisateurs.
- env
- Cette variable est gérée par Tcl comme un tableau dont les éléments sont les variables d'environnements pour le processus. Lire un élément renverra la valeur de la variable d'environnement correspondante. Ecrire un élément du tableau modifiera la variable d'environnement correspondante ou en créera une nouvelle si elle n'existe pas déjà. Effacer un élément de env enlèvera la variable d'environnement correspondante. Les changements du tableau env affectent l'environnement transmis aux enfants par les commandes comme exec. Si le tableau entier env est effaçé alors Tcl arrètera de surveiller l'accès à env et ne mettra plus à jour les variables d'environnements.
Sous Windows, les variables d'environnements PATH et COMSPEC sont converties automatiquement en majuscule Par exemple, la variable PATH pourrait être exportée par le système d'exploitation comme "path", "Path", "PaTh", etc., ce qui autrement demanderait au code Tcl de supporter de nombreux cas spéciaux. Toutes les autres variables d'environnement héritées par Tcl sont inchangées.
Sur Macintosh, la variable d'environnement est construite par Tcl car aucune variable globale d'environnement n'existe. Les variable d'environnements qui sont créées par Tcl inclutnt:
LOGIN
- Contient le nom Chooser du Macintosh.
USER
- Contient aussi le nom Chooser du Macintosh.
SYS_FOLDER
- Le chemin du répertoire système.
APPLE_M_FOLDER
- Le chemin du répertoire du Menu Pomme.
CP_FOLDER
- Le chemin du répertoire du panneau de contrôle.
DESK_FOLDER
- Le chemin du répertoire du bureau.
EXT_FOLDER
- Le chemin du répertoire d'extensions système.
PREF_FOLDER
- Le chemin du répertoire des préferences.
PRINT_MON_FOLDER
- Le chemin du répertoire print monitor.
SHARED_TRASH_FOLDER
- Le chemin du répertoire de la corbeille réseau.
TRASH_FOLDER
- Le chemin du répertoire de la corbeille.
START_UP_FOLDER
- Le chemin du répertoire de démarrage.
PWD
- Le chemin du répertoire par défaut de l'application.
Vous pouvez aussi créer votre propre variable d'environnement pour le Macintosh. Un fichier nommé Tcl Environment Variables peut être placé dans le dossier préferences dans le dossier système Mac. Chaque lignes de ce fichier seront de la forme VAR_NAME=var_data.
La dernière alternative est de placer les variable d'environnements dans une resource 'STR#' nommée Tcl Environment Variables de l'application. Ceci est consideré un peu plus "Mac like" qu'un fichier style Unix Environment Variable. Chaque entrée dans la resource 'STR#' a le même format que ci-dessous. Le fichier source tclMacEnv.c contient l'implémentation des mécanismes de env. Ce fichier contient de nombreux #define qui autorisent la customisation des mécanismes env pour les adapter aux besoins de votre applications.
errorCode- Après une erreur, cette variable est fixée pour recevoir l'information supplémentaire au sujet de l'erreur sous une forme qui est facile à traiter pour les programmes. errorCode consiste d'une liste Tcl avec un ou plusieurs éléments. Le premier élément de la liste identifie une classe générale d'erreurs, et détermine le format du reste de la liste. Les formats suivants pour errorCode sont utilisés par le noyau Tcl; les applications peuvent definir des formats supplémentaires.
- ARITH code msg
- Ce format est utilisé quand une erreur arithmétique se produit (ex. une tentative de division par zéro dans une commande expr). Code identifie l'erreur précise et msg fournit une description compréhensible de l'erreur Code sera soit DIVZERO (pour une tentative de division par zéro), DOMAIN (si un argument est en dehors du domaine d'une fonction, tel acos(-3)), IOVERFLOW (débordement entier), OVERFLOW (débordement flottant), ou UNKNOWN (si la cause de l'erreur ne peut pas être déterminée).
CHILDKILLED pid sigName msg
- Ce format est utilisé quand un processus enfant a été tué à cause d'un signal. Le second élément de errorCode sera l'identificateur de processus (en décimal). Le troisième élément sera le nom symbolique du signal qui à causé la fin du processus; il sera un des noms du fichier include signal.h, tel que SIGPIPE. Le quatrième élément sera un court message décrivant le signal, tel que "write on pipe whith no readers" pour SIGPIPE.
CHILDSTATUS pid code
- Ce format est utilisé quand un processus enfant s'est terminé avec un statut différent de zéro Le second élément de errorCode sera l'identificateur de processus (en décimal). et le troisième élément sera le code de fin renvoyé par le processus (aussi en décimal).
CHILDSUSP pid sigName msg
- Ce format est utilisé quand un processus enfant a été suspendu à cause d'un signal. Le second élément de errorCode sera l'identificateur de processus (en décimal).. Le troisième élément sera le nom symbolique du signal qui a causé la suspension du processus; ce sera un des noms du fichier include signal.h,, tel que SIGTTIN. Le quatrième élément sera sera un court message décrivant le signal, tel que "background tty read" pour SIGTTIN.
NONE
- Ce format est utilisé pour les erreurs où aucune information supplémentaire n'est disponible pour une erreur en plus du message renvoyé avec l'erreur Dans ces cas errorCode consistera en une liste contenant un seul élément dont le contenu sera NONE.
- POSIX errName msg
- Si le premier élément de errorCode est POSIX, alors l'erreur s'est produite pendant un appel noyau POSIX. Le second élément de la liste contiendra le nom symbolique de l'erreur qui s'est produite, tel que ENOENT; ce sera une des valeurs définies dans le fichier include errno.h. Le troisième élément de la liste sera un message compréhensible correspondant à errName, tel que "aucun fichier ou répertoire" dans le cas de ENOENT.
Pour fixer errorCode, les applications devraient utiliser une fonction de bibliothèque telle que Tcl_SetErrorCode et Tcl_PosixError, ou elles peuvent appeller la commande error. Si une de ces méthodes n'a pas été utilisée, alors l'interpréteur Tcl réinitialisera la variable à NONE après l'erreur suivante.
errorInfo- Après une erreur, cette chaîne contiendra une ou plusieurs lignes identifiant la commande Tcl et les fonctions qui étaient exécutées quand l'erreur la plus recente s'est produite. Son contenu prend la forme d'une trace de la pile montrant les commandes Tcl imbriquées qui avait été appelées à l'instant de l'erreur.
tcl_library
- Cette variable contient le nom d'un répertoire contenant les bibliothèques système de scripts Tcl, tel que celles utilisées pour un auto-chargement. La valeur de cette variable est renvoyé par la commande info library. Voir la page de manuel library pour les détails des facilités fournies par la bibliothèque de scripts Tcl. Normalement chaque application ou package aura sa propre bibliothèque spécifique en plus de la bibliothèque Tcl; chaque application devra fixer une variable globale avec un nom comme $app_library (où app est le nom de l'application) pour recevoir le nom de chemin réseau du répertoire de la bibliothèque de cette de l'application. La valeur initiale de tcl_library est fixée quand un interpréteur est créé en cherchant plusieurs répertoire différents jusqu'a ce qu'un soit trouvé contenant un script de démarrage approprié. Si la variable d'environnement TCL_LIBRARY existe, alors le répertoire qu'elle indique est vérifié en premier. Si TCL_LIBRARY n'est pas fixé ou ne se refère pas à un répertoire approprié, alors Tcl vérifie plusieurs autre répertoires en se basant sur l'emplacement compilé par défaut, l'emplacement du binaire contenant l'application, et le répertoire de travail courant.
tcl_patchLevel
- Quand un interpréteur est créé Tcl initialise cette variable pour recevoir une chaîne donnant le courant niveau de patch de Tcl, tel que 7.3p2 for Tcl 7.3 avec les deux premier patches officiels, ou 7.4b4 pour la quatrième release beta de Tcl 7.4. La valeur de cette variable est renvoyé par la commande info patchlevel.
tcl_pkgPath
- Cette variable contient une liste de répertoires indiquant où les packages sont normalement installés. Elle n'est pas utilisée sous Windows. Elle contient typiquement soit une ou deux entrées; si elle contient deux entrées, la première est normalement un répertoire pour les packages dependant de la plateforme (ex., bibliothèques partagées binaires) et le second est normalement un répertoire pour les packages indépendants de la plateforme- (ex., fichiers script). Typiquement un package est installé comme sous répertoire d'une des entrées de $tcl_pkgPath. Les répertoires de $tcl_pkgPath sont inclus par défaut dans la variable auto_path, donc eux et leurs sous-répertoires immédiats sont automatiquement recherché pendant les commandes package require Note: tcl_pkgPath n'est pas conçue pour être modifiée par les application. Sa valeur est ajoutée à auto_path au démarrage; les changement dans tcl_pkgPath ne sont pas reflétés dans auto_path. Si vous voulez que Tcl recherche les packages dans des répertoires supplémentaires vous devrez ajouter leurs noms à auto_path, pas à tcl_pkgPath.
tcl_platform
- Ceci est un tableau associatif dont les éléments contiennent l'information concernant la plateforme sur laquelle l'application s'exécute, tel que le nom du système d'exploitation, son numéro de release courant, et le jeu d'instruction de la machine Les éléments listés ci-dessous seront toujours définis, mais ils peuvent avoir des chaîne vides comme valeurs si Tcl n'a pu récupérer quelconque information en rapport De plus, les extensions et les applications peuvent ajouter des valeurs supplémentaires au tableau Les éléments prédéfinis sont:
- byteOrder
- L'ordre natif des octets de cette machine: soit littleEndian ou bigEndian
debug
- Si cette variable existe, alors l'interpréteur a été compilé avec les symboles debuggage activés. Cette variable existe seulement sous Windows donc les programmeurs d'extension peuvent spécifier quel package charger, ceci dépendant de la bibliothèque d'exécution C qui est chargée.
machine
- Le jeu d'instruction exécuté par cette machine, tel que intel, PPC, 68k, ou sun4m Sur les machines UNIX, c'est la valeur renvoyée par uname -m.
-
os
- Le nom du système d'exploitation exécuté sur cette machine, tel que Windows 95, Windows NT, MacOS, ou SunOS. Sur les machines UNIX, c'est la valeur renvoyée par uname -s. Sur Windows 95 et Windows 98, la valeur renvoyée sera Windows95 pour fournir une meilleure compatibilité ascendante avec Windows 95; pour distinguer entre les deux, vérifier osVersion.
osVersion
- Le numéro de version du système d'exploitation exécuté sur cette machine. Sur les machines UNIX, c'est la valeur renvoyée par uname -r Sur Windows 95, la version sera 4.0; sur Windows 98, la version sera 4.10.
platform
- Soit windows, macintosh, ou unix. Identifie l'environnement de la machine.
threaded
- Si cette variable existe, alors l'interpréteur a été compilé avec les threads activés.
user
- Ceci identifie l'utilisateur courant basées sur l'information de login disponible sur la plateforme. Est tiré de la variable d'environnement USER ou LOGNAME sous Unix, et de la valeur de GetUserName sous Windows et Macintosh.
tcl_precision
- Cette variable contrôle le nombre de chiffres à générer pendant la conversion de valeurs flottantes en chaînes Par défaut de 12. 17 chiffres est "parfait" pour les flottants IEEE car il permet de convertir les valeurs double-précision en chaînes puis de revenir en binaire sans perte d'information Néanmoins, l'utilisation de 17 chiffres empêche tout arrondi, et produit des résultats plus long, et moins intuitifs Par exemple, expr 1.4 retourne 1.3999999999999999 avec tcl_precision fixé à 17, contre 1.4 si tcl_precision est à 12. Tous les interpréteurs dans un processus partagent une seule valeur tcl_precision: la changer pour un interpréteur affectera tous les autres interpréteurs. Néanmoins, les interpréteur sùrs ne sont pas autorisé à modifier la variable. /DD>
tcl_rcFileName
- Cette variable est utilisée pendant l'initialisation pour indiquer le nom d'un fichier de démarrage spécifique à l'utilisateur. Si elle est fixée par l'initialisation spécifique à l'application, alors le code Tcl de démarrage vérifiera l'existence de ce fichier et le source s'il existe. Par exemple, pour wish la variable est fixée à ~/.wishrc sous Unix et ~/wishrc.tcl sous Windows.
tcl_rcRsrcName
- Cette variable est utilisée seulement sur les systèmes Macintosh. La variable est utilisée pendant l'initialisation pour indiquer le nom d'une resource TEXT spécifique à l'utilisateur localisée dans les resource forks de l'application ou de l'extension. Si elle est fixée par l'initialisation spécifique à l'application, alors le code Tcl de démarrage vérifiera l'existence de cette resource et la source si elle existe. Par exemple, l'application Macintosh wish a la variable fixée à tclshrc.
tcl_traceCompile
- La valeur de cette variable peut être fixée pour contrôler combien d'information de traçage est affichée pendant la compilation du bytecode. Par défaut, tcl_traceCompile est à zéro et aucune information n'est affichée. Fixer tcl_traceCompile à 1 génère une ligne sur la sortie standard chaque fois qu'une fonction ou commande de premier niveau est compilée. La fixer à 2 génère un listing détaillé sur la sortie standard des instructions bytecode émises pendant toute la compilation. Cette variable est utile pour rechercher des problèmes suspectés avec le compilateur Tcl. Elle est aussi parfois utile pour la conversion de code existant en Tcl8.0.
tcl_traceExec
- La valeur de cette variable peut être fixée pour contrôler combien d'information de traçage est affichée pendant l'exécution du bytecode. Par défaut, tcl_traceExec est à zéro et aucune information n'est affichée. Fixer tcl_traceExec à 1 génère une ligne sur la sortie standard à chaque appel d'une fonction Tcl. La fixer à 2 génère une ligne de sortie chaque fois qu'une commande Tcl est appelée, qui contient le nom de la commande et ses arguments. La fixer à 3 produit une trace détaillée montrant le résultat de l'exécution chaque instruction bytecode. Notez que quand tcl_traceExec est à 2 ou à 3, les commandes tel que set et incr qui ont été entièrement remplacées par une séquence d'instructions bytecode ne sont pas montrées. Fixer cette variable est utile pour rechercher des problèmes suspectés avec le compilateur et l'interpréteur Tcl. Elle est aussi parfois utile pour la conversion de code existant en Tcl8.0.
tcl_wordchars
- La valeur de cette variable est une expression rationelle qui peut être fixée pour contrôler ce qui est consideré comme des caractères "mot", pour des utiisations comme la selection d'un mot par double-click dans le texte dans Tk. Il est dépendant de la plateforme. Sous Windows, il est par défaut de \S, signifiant tout sauf le caractère espace Unicode Autrement il est par défaut de \w, qui est tout caractère Unicode (nombre, lettre, ou underscore).
tcl_nonwordchars
- La valeur de cette variable est une expression rationelle qui peut être fixée pour contrôler ce qui est consideré comme des caractères "non-mot", pour des utilisations comme la selection d'un mot par double-click dans le texte dans Tk. Il est dépendant de la plateforme Sous Windows, il est par défaut de \s, signifiant tout caractère espace Unicode Autrement il est par défaut de \W, qui est tout sauf un caractère Unicode (nombre, lettre, ou underscore).
tcl_version
- Quand un interpréteur est créé Tcl initialise cette variable pour recevoir le numéro de version de cette version de Tcl sous la forme x.y. Les changements de x représentent les changements majeurs avec probable incompatibilités et les changements de y représentent les petites améliorations et les corrections de bugs qui conservent une compatibilité ascendante. La valeur de cette variable est renvoyé par la commande info tclversion