платформа
Имя
платформа — Код поддержки идентификации системы и служебные утилитыСинопсис
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