Spec-Zone.ru › Tcl/Tk

платформа

Имя

платформа — Код поддержки идентификации системы и служебные утилиты

Синопсис

package require platform ?1.0.10?
platform::generic
platform::identify
platform::patterns идентификатор

Описание

Пакет platform предоставляет несколько служебных команд, полезных для определения архитектуры машины, на которой работает Tcl.

Хотя Tcl предоставляет массив tcl_platform для идентификации текущей архитектуры (в частности, элементов платформы и машины), этого не всегда достаточно. Это связано с тем, что (на машинах Unix) tcl_platform отражает значения, возвращаемые командой uname, а эти значения не стандартизированы для разных платформ и архитектур. Кроме того, по крайней мере на одной платформе (AIX) tcl_platform(machine) содержит серийный номер процессора.

Поэтому отдельным приложениям нужно манипулировать значениями в tcl_platform (вместе с результатами системных утилит) — что неудобно для разработчиков и может привести к несоответствиям в идентификации архитектур и в соглашениях об именовании.

Пакет platform предотвращает такое дробление — то есть устанавливает стандартную систему именования архитектур, на которых работает Tcl, и упрощает для разработчиков идентификацию текущей архитектуры, на которой работает программа Tcl.

Команды

platform::identify
Эта команда возвращает идентификатор, описывающий платформу, на которой работает ядро Tcl. Возвращаемый идентификатор имеет общий формат ОС-CPU. Часть ОС идентификатора может содержать такие детали, как версия ядра, версия libc и т. д., и эта информация также может содержать дефисы. Часть CPU не будет содержать дефисов, делая предыдущий дефис последним в результате.
platform::generic
Эта команда возвращает упрощенный идентификатор, описывающий платформу, на которой работает ядро Tcl. В отличие от platform::identify она опускает такие детали, как версия ядра, версия libc и т. д. Возвращаемый идентификатор имеет общий формат ОС-CPU.
platform::patterns идентификатор
Эта команда принимает идентификатор, возвращаемый командой platform::identify, и возвращает список идентификаторов, описывающих совместимые архитектуры.

Пример

Это можно использовать, чтобы приложение могло поставляться с несколькими сборками общей библиотеки, так что один и тот же пакет работает на многих версиях операционной системы. Например:
package require platform
# Assume that app script is .../theapp/bin/theapp.tcl
set binDir [file dirname [file normalize [info script]]]
set libDir [file join $binDir .. lib]
set platLibDir [file join $libDir [platform::identify]]
load [file join $platLibDir support[info sharedlibextension]]

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/platform.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/platform.htm

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API