Системное программирование в UNIX средствами Free Pascal

       

Каталоги и пути


Важное понятие, связанное с файлами, – каталог (directory). Каталоги представляют собой набор файлов, позволяя сформировать некоторую логическую структуру содержащейся в системе информации. Например, каждый пользователь обычно имеет начальный каталог, в котором он работает, а команды, системные библиотеки и программы администрирования обычно расположены в своих определенных каталогах. Кроме файлов, каталоги также могут содержать произвольное число подкаталогов, которые, в свою очередь, также могут содержать подкаталоги, и так далее. Фактически каталоги могут иметь любую глубину вложенности. Таким образом, файлы UNIX организованы в иерархической древовидной структуре, в которой каждый узел, кроме конечных, соответствует каталогу. Вершиной этого дерева является один каталог, которая обычно называется корневым каталогом (root directory).

/



|

usr

keith

ben

|

|

book

file1

file2

book

chap1

chap2

chap1

chap2

Рис. 1.1. Пример дерева каталогов

Подробное рассмотрение структуры каталогов системы UNIX содержится в главе 4. Тем не менее, поскольку в книге постоянно будет идти речь о файлах UNIX, стоит отметить, что полные их имена, которые называются путями

(pathnames), отражают эту древовидную структуру. Каждый путь задает последовательность ведущих к файлу каталогов. Например, полное имя




/usr/keith/book/chap1

можно разбить на следующие части: первый символ / означает, что путь начинается с корневого каталога, то есть путь дает абсолютное положение файла (absolute pathname). Затем идет usr – подкаталог корневого каталога. Каталог keith находится еще на один уровень ниже и поэтому является подкаталогом /usr. Аналогично каталог book является подкаталогом /usr/keith. Последняя часть, chap1, может быть и каталогом, и обычным файлом, поскольку каталоги именуются точно так же, как и обычные файлы. На рис. 1.1 показан пример дерева каталогов, содержащих этот путь.

Путь, который не начинается с символа /, называется относительным путем (relative pathname) и задает маршрут к файлу от текущего рабочего каталога

(current working directory) пользователя. Например, полное имя

chap1/intro.txt

описывает файл intro.txt, который находится в подкаталоге chap1 текущего каталога. В самом простом случае имя

intro.txt

просто обозначает файл intro.txt в текущем каталоге. Снова заметим: для того чтобы программа была действительно переносимой, каждая из частей полного имени файла должна быть не длиннее 14 символов.


Содержание раздела