<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN> <html> <head> <title>tclvars</title> </head> <body> <h1>tclvars</h1> <p>Переменные, используемые Tcl.</p> <h2>ОПИСАНИЕ</h2> <p>Следующие глобальные переменные автоматически создаются при запуске программ. Как правило, они ведутся автоматически и в пользовательском приложении их значения не изменяются.</p> <dl> <dt><a name=env></a><strong>env</strong></dt> <dd><p>Эта переменная представляет собой массив, элементы которого соответствуют переменным окружения. Присвоение значения элементу массива приводит к изменению значения (или созданию) соответствующей переменной окружения. Удаление элемента массива с помощью команды <strong><a href= unset.html>unset</a></strong> удаляет соответствующую переменную окружения. Модифицированное состояние массива используется для процессов - потомков, запущенных командой <strong><a href=exec.html>exec</a></strong>. </p> <p>На Windows-платформах переменные <strong>PATH</strong>, <strong>COMSPEC</strong> и <strong>WINDIR</strong> всегда пишутся в верхнем регистре. Все остальные переменные оставляются в том виде, в каком они заданы в операционной системе.</p> <p>На Macintosh-платформах, на которых нет переменных окружения, автоматически формируемый массив <strong>env</strong>, тем не менее, содержит следующие элементы:</p> <p> LOGIN, USER, SYS_FOLDER, APPLE_M_FOLDER, CP_FOLDER, DESK_FOLDER, EXT_FOLDER, PREF_FOLDER, PRINT_MON_FOLDER, SHARED_TRASH_FOLDER, TRASH_FOLDER, START_UP_FOLDER, PWD </p> </dd> <dt><a name=errorCode></a><strong>errorCode</strong> </dt> <dd><p>При возникновении ошибки эта переменная содержит дополнительную информацию об ошибке в форме, удобной для автоматической обработки. Эта информация содержится в виде списка из одного или более элементов. Первый элемент списка содержит имя класса ошибки. Его значение определяет формат остальной части списка. Стандартно используются следующие классы ошибок (в приложении могут определяться и дополнительные классы):</p> <dl> <dt><strong>ARITH</strong> <em>code</em> <em>msg</em></dt> <dd> Этот класс ошибки формируется при арифметической ошибке (например, при попытке делить на ноль в команде <a href=expr.html><strong>expr</strong></a>). Код <em>code</em> определяет конкретный тип ошибки, а <em>msg</em> содержит текст с описанием ошибки. Возможные значения кода <strong>DIVZERO</strong> (попытка делить на нуль), <strong>DOMAIN</strong> (аргумент не принадлежит области определения функции, например <em>acos(2)</em>), <strong>IOVERFLOW</strong> (переполнение при целочисленных операциях), <strong>OVERFLOW</strong> (переполнение при вычислениях с плавающей запятой) или <strong>UNKNOWN</strong> (если не удается определить тип ошибки). </dd> <dt><strong>CHILDKILLED</strong> <em>pid</em> <em>sigName</em> <em>msg</em></dt> <dd>Этот класс ошибки используется, если выполнение процесса - потомка прервано сигналом. Второй элемент списка (<em>pid</em>) содержит в этом случае идентификатор прерванного процесса. Элемент <em>sigName</em> содержит символьное имя сигнала, например <strong>SIGPIPE</strong>, а в элементе <em>msg</em> содержит текст с описанием сигнала, например "write on pipe with no readers". </dd> <dt><strong>CHILDSTATUS</strong> <em>pid</em> <em>code</em></dt> <dd>Этот класс ошибки используется, когда процесс - потомок завершается с кодом ошибки. Второй элемент списка (<em>pid</em>) содержит в этом случае идентификатор прерванного процесса а третий элемент (<em>code</em>) - значение кода ошибки. </dd> <dt><strong>CHILDSUSP</strong> <em>pid</em> <em>sigName</em> <em>msg</em></dt> <dd>Этот класс ошибки используется, когда выполнение процесса-потомка приостановлено из-за сигнала. Элементы списка имеют тот же смысл, что и для <strong>CHILDKILLED.</strong> </dd> <dt><strong>NONE</strong></dt> <dd>Этот класс используется для тех ошибок, для которых дополнительная информация не может быть получена, поскольку при попытке ее выдать произошла ошибка. </dd> <dt><strong>POSIX</strong> <em>errName</em> <em>msg</em></dt> <dd>Этот класс используется для тех ошибок, которые происходят при выполнении вызовов <strong>POSIX</strong>. Второй элемент списка содержит символическое имя ошибки, например, ENOENT, а в элементе <em>msg</em> содержит текст с описанием ошибки, например, "no such file or directory". </dd> </dl> <dt><a name=errorInfo></a><strong>errorInfo</strong></dt> <dd>При возникновении ошибки эта переменная содержит описание команды или процедуры, в которой произошла последняя ошибка. Описание построено в виде описания стека, указывающего вложенные Tcl-команды, выполнявшиеся при возникновении ошибки. </dd> <dt><strong>tcl_library</strong></dt> <dd>В этой переменной хранится имя каталога, содержащего системную библиотеку Tcl-скриптов, используемых, в частности, при автозагрузке. Величина этой переменной возвращается командой <a href=info.html#library><strong>info</strong> <strong>library</strong></a>. Начальное значение переменной формируется в результате просмотра ряда каталогов и поиска в них соответствующих скриптов. Если задана переменная окружения <strong>TCL_LIBRARY</strong>, указанный в ней каталог проверяется первым. Если переменная <strong>TCL_LIBRARY</strong> не задана или в ней не содержатся необходимые файлы, то просматриваются еще несколько каталогов, зависящих от расположения каталогов Tcl и текущего каталога. </dd> <dt><strong>tcl_patchLevel</strong></dt> <dd>В этой переменной хранится информация о текущей версии Tcl, например <strong>7.3p2</strong> для второй доработки версии 7.3. или <strong>7.4b4</strong> для четвертого бета релиза версии 7.4. Значение переменной возвращается командой <a href=info.html#patchlevel><strong>info</strong> <strong>patchlevel</strong></a>. </dd> <dt><strong>tcl_pkgPath</strong></dt> <dd>Переменная содержит список каталогов, используемых для размещения пакетов библиотек. Обычно список состоит из двух элементов - каталога для бинарных файлов и каталога для скриптов. Пакеты обычно устанавливаются как подкаталоги этих каталогов. Исходное значение переменной добавляется к списку каталогов в <strong>auto_path</strong> и используются для поиска пакетов при выполнении команды <a href= package.html#require><strong>package</strong> <strong>require</strong></a>. Последующие изменения в <strong>tcl_pkgPath</strong> не отражаются в переменной <strong>auto_path</strong>. Поэтому дополнительные каталоги для поиска пакетов необходимо указывать (если это нужно) непосредственно в переменной <strong>auto_path</strong>. </dd> <dt><strong>tcl_platform</strong></dt> <dd>Эта переменная является ассоциативным массивом, в элементах которого содержится информация о платформе. Ниже содержится список элементов массива (расширения и приложения могут хранить информацию о себе в дополнительных элементах этого массива). </dd> <dt><strong>byteOrder</strong></dt> <dd>Исходный порядок байтов в слове: <strong>littleEndian</strong> или <strong>bigEndian</strong> </dd> <dt><strong>machine</strong></dt> <dd>Набор команд, исполняемых на машине, например <strong>intel</strong>, <strong>PPC</strong>, <strong>68k</strong> или <strong>sun4m</strong>. На Unix - платформах совпадает с величиной, возвращаемой командой <strong>uname -m</strong>. </dd> <dt><strong>os</strong></dt> <dd>Имя операционной системы, например <strong>Win32s</strong>, <strong>Windows NT</strong>, <strong>MacOS</strong> или <strong>SunOS</strong>. На Unix - платформах совпадает с величиной, возвращаемой командой <strong>uname -s</strong>. </dd> <dt><strong>osVersion</strong></dt> <dd>Версия операционной системы. На Unix - платформах совпадает с величиной, возвращаемой командой <strong>uname -r</strong>. </dd> <dt><strong>platform</strong></dt> <dd>Может принимать одно из значений <strong>windows</strong>, <strong>macintosh</strong> или <strong>unix</strong>. </dd> <dt><strong>tcl_precision</strong></dt> <dd><p>Переменная управляет числом цифр при переводе десятичных чисел в строки. Значение по умолчанию 12. Максимальное значение 17 позволяет переводить числа из двоичного представления в строковое и обратно без потери точности. Однако при этом отключается округление. В результате команда </p> <pre> expr 1.4 </pre> <p>вернет значение 1.3999999999999999, если tcl_precision равна 17, и значение. 1.4 если tcl_precision равна 12.</p> <p>Все интерпретаторы в процессе используют одно и тоже значение tcl_precision. Изменение точности представления чисел в одном из интерпретаторов ведет к его синхронному изменению во всех остальных. Однако, в надежных интерпретаторах изменять точность нельзя.</p> </dd> <dt><strong>tcl_rcFileName</strong></dt> <dd>Эта переменная используется при инициализации для определения имени пользовательского фала, исполняемого при запуске. Для <a href=wish.html>wish</a> обычно ее значение <strong>~/.wishrc</strong> для Unix платформ и <strong>~/wishrc.tcl</strong> для Windows платформ. Если соответствующий файл найден, он читается командой <a href=source.html><strong>source</strong></a>. </dd> <dt><strong>tcl_rcRsrcName</strong></dt> <dd>Используется только на Macintosh платформах для задания <strong>TEXT</strong> ресурса. </dd> <dt><strong>tcl_traceCompile</strong></dt> <dd>Эта переменная позволяет управлять объемом информации, формирующейся при компиляции Tcl в байт-код. По умолчанию значение переменной равно 0 и никакая информация не выводится. Если присвоить <strong>tcl_traceCompile</strong> значение 1, то при компиляции каждой процедуры или команды верхнего уровня на стандартный выход посылается одна строка комментариев. Если присвоить <strong>tcl_traceCompile</strong> значение 2, то при компиляции в стандартный вывод выдается подробный листинг. Это бывает полезно при проблемах, возникающих в процессе компиляции, особенно, при переводе старых программ на Tcl8.0. </dd> <dt><strong>tcl_traceExec</strong></dt> <dd>Эта переменная позволяет управлять объемом информации, выводящейся при исполнении байт-кода. По умолчанию <strong>tcl_traceExec</strong> равна 0 и никакая информация не выводится. Если присвоить <strong>tcl_traceExec</strong> значение 1, то при исполнении процедур в стандартный вывод выдается одна строка текста. Если присвоить <strong>tcl_traceExec</strong> значение 1, то строка текста выдается также при выполнении каждой команды, а если присвоить <strong>tcl_traceExec</strong> значение 3, то выдается информация о выполнении каждой инструкции байт-кода. Это бывает полезно при проблемах, возникающих в процессе компиляции и исполнения, особенно, при переводе старых программ на Tcl8.0. </dd> <dt><strong>tcl_version</strong></dt> <dd>Эта переменная содержит номер версии Tcl в форме x.y. Обычно изменение x может означать потерю совместимости с предыдущими версиями, тогда как изменение y означает небольшие улучшения и исправление ошибок. Значение переменной возвращается командой <a href= info.html#tclversion><strong>info</strong> <strong>tclversion</strong></a>. </dd> </dl> </body> </html>