2018-02-05 17:22:04 +03:00
|
|
|
|
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>filename</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<h1>filename</h1>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p> Правила именования файлов в Tcl. </p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=ВВЕДЕНИЕ></a>ВВЕДЕНИЕ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p> Все команды Tcl и процедуры С, использующие имена файлов в
|
|
|
|
|
качестве аргументов, позволяют использовать имена в форме,
|
|
|
|
|
установленной для данной платформы. Кроме того, на всех
|
|
|
|
|
платформах Tcl поддерживается синтаксис UNIX с целью
|
|
|
|
|
предоставления удобного способа составления простых имен
|
|
|
|
|
файлов. Тем не менее, скрипты, предназначенные для переноса
|
|
|
|
|
между платформами, не должны пользоваться конкретной формой имен
|
|
|
|
|
файлов. Вместо этого такие скрипты должны использовать команды
|
|
|
|
|
<a href=file.html#split><strong>file split</strong></a> и <a
|
|
|
|
|
href=file.html#join><strong>file join</strong></a> для
|
|
|
|
|
преобразования имен к нужной форме.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</p>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=ТИПЫ ПУТЕЙ></a>ТИПЫ ПУТЕЙ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p> Все имена файлов поделены на три типа, в зависимости от
|
|
|
|
|
начальной точки для отсчета пути: абсолютные, относительные и
|
|
|
|
|
имена внутри тома (volume-relative).</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Абсолютные имена являются самодостаточными, они содержат полный
|
|
|
|
|
путь файла внутри тома и адрес корневого каталога
|
|
|
|
|
тома. Относительные имена являются неполными, они указывают
|
|
|
|
|
положение файла по отношению к текущему каталогу. Имена внутри
|
|
|
|
|
тома занимают промежуточное положение между первыми двумя, они
|
|
|
|
|
указывают положение файла относительно корневого каталога
|
|
|
|
|
текущего тома или относительно текущего каталога указанного
|
|
|
|
|
тома.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Для определения типа указанного пути можно использовать команду
|
|
|
|
|
<a href=file.html><strong>file</strong></a> <em>pathtype</em>.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=СИНТАКСИС ПУТЕЙ></a>СИНТАКСИС ПУТЕЙ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p> Пути формируются различным образом для различных платформ.
|
|
|
|
|
Текущая платформа определяется по значению переменной
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<em>tcl_platform(platform)</em>:</p>
|
|
|
|
|
<dl>
|
|
|
|
|
<dt><strong>mac</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Для Macintosh-платформ Tcl поддерживает две формы
|
|
|
|
|
представления путей: с двоеточием, в обычном для Macintosh
|
|
|
|
|
стиле, и со слэшем, в Unix-стиле. Если путь не содержит
|
|
|
|
|
двоеточий, то он считается путем в в Unix-стиле. При этом
|
|
|
|
|
"." означает текущий каталог, ".." -
|
|
|
|
|
родительский каталог для текущего каталога. Однако такие
|
|
|
|
|
имена, как <strong>/</strong> или <strong>/..</strong> считаются именами каталогов
|
|
|
|
|
в Macintosh-стиле. При этом команды, генерирующие имена
|
|
|
|
|
файлов, возвращают их в Macintosh-стиле, тогда как команды,
|
|
|
|
|
использующие имена файлов, могут получать их и в
|
|
|
|
|
Macintosh-стиле, и в Unix-стиле.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>unix</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd><p>На Unix-платформах используются пути, которые содержат
|
|
|
|
|
компоненты, разделенные символом слэш. Пути могут быть
|
|
|
|
|
абсолютными или относительными, имена файлов могут содержать
|
|
|
|
|
любые символы, кроме слэша. Имена файлов. и. являются
|
|
|
|
|
специальными и обозначают текущий каталог и родительский
|
|
|
|
|
каталог текущего каталога, соответственно. Несколько слэшей
|
|
|
|
|
подряд понимаются как один разделитель.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Ниже приведено несколько примеров различных типов путей:
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</p>
|
|
|
|
|
<dl>
|
|
|
|
|
<dt><strong>/</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Абсолютный путь к корневому каталогу. </dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>/etc/passwd</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Абсолютный путь к файлу <strong>passwd</strong> к каталогу etc в
|
|
|
|
|
корневом каталоге.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>.</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Относительный путь к текущему каталогу. </dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt> <strong>foo</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Относительный путь к файлу <strong>foo</strong> в текущем
|
|
|
|
|
каталоге. </dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>foo/bar</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Относительный путь к файлу <strong>bar</strong> в подкаталоге
|
|
|
|
|
<strong>foo</strong> текущего каталога</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>../foo</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Относительный путь к файлу <strong>foo</strong> в каталоге над
|
|
|
|
|
текущим.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt> <strong>windows</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Для Windows-платформ Tcl поддерживает дисковые и сетевые
|
|
|
|
|
имена. В обоих типах имен можно использовать в качестве
|
|
|
|
|
разделителя как прямой, так и обратный слэш. Дисковые имена
|
|
|
|
|
состоят из (при необходимости) имени диска и последующего
|
|
|
|
|
абсолютного или относительного пути. Сетевые пути обычно имеют
|
|
|
|
|
вид <strong>\servername\sharename\pathile</strong>. В обеих формах
|
|
|
|
|
"." и ".." ссылаются соответственно на
|
|
|
|
|
текущий каталог и его предка.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=ТИЛЬДА-ПОДСТАНОВКИ></a>ТИЛЬДА-ПОДСТАНОВКИ</h2>
|
|
|
|
|
|
|
|
|
|
<p> В дополнение к правилам, описанным выше, Tcl позволяет
|
|
|
|
|
использовать "тильда"-подстановки в стиле cshell. Если
|
|
|
|
|
имя файла начинается с <strong>~</strong>, за которой сразу следует
|
|
|
|
|
сепаратор, она заменяется на значение переменной окружения
|
|
|
|
|
<strong>/home/svk</strong>. В противном случае символы от "тильды"
|
|
|
|
|
до следующего разделителя интерпретируются как имя пользователя
|
|
|
|
|
и заменяются на имя домашнего каталога пользователя.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</p>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p> На Macintosh- и Windows-платформах
|
|
|
|
|
"тильда"-подстановки с именем пользователя не
|
|
|
|
|
поддерживаются. При попытке использовать такое имя файла
|
|
|
|
|
выдается ошибка. Однако "тильда" без имени
|
|
|
|
|
пользователя заменяется, как и на Unix-платформах, на значение
|
|
|
|
|
переменной окружения <strong>/home/svk</strong>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</p>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=ВОПРОСЫ ПЕРЕНОСИМОСТИ></a>ВОПРОСЫ ПЕРЕНОСИМОСТИ</h2>
|
|
|
|
|
|
|
|
|
|
<p> При разработке переносимых приложений необходимо учитывать,
|
|
|
|
|
что не все файловые системы различают заглавные и прописные
|
|
|
|
|
буквы. Поэтому следует избегать использования имен файлов,
|
|
|
|
|
различающихся только регистром букв. Кроме того, необходимо
|
|
|
|
|
отказаться от использования символов, имеющих специальное
|
|
|
|
|
назначение хотя бы на одной из платформ, например,
|
|
|
|
|
<strong><>:"/\|</strong>. А также, если предполагается
|
|
|
|
|
использовать программу на Windows 3.1, необходимо учитывать, что
|
|
|
|
|
имена файлов при этом должны быть ограничены восемью буквами, а
|
|
|
|
|
расширения - тремя.<br>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</p>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
|