5.3.2. Функции размещения каталогов BSD

5.3.2. Функции размещения каталогов BSD

Иногда полезно отметить текущее положение в каталоге для того, чтобы иметь возможность позже к нему вернуться. Например, вы пишете код, обходящий дерево каталога, и хотите рекурсивно входить в каждый подкаталог, когда его проходите. (Как отличить файлы от каталогов обсуждается в следующем разделе). По этой причине первоначальный интерфейс BSD включал две дополнительные процедуры:

#include <dirent.h> /* XSI */

/* Предупреждение: POSIX XSI использует для обеих функций long, а не off_t */

off_t telldir(DIR *dir);              /* Вернуть текущее положение */

void seekdir(DIR *dir, off_t offset); /* Переместиться в данное положение */

Эти процедуры подобны функциям ftell() и fseek() и <stdio.h>. Они возвращают текущее положение в каталоге и устанавливают текущее положение в ранее полученное значение соответственно.

Эти процедуры включены в часть XSI стандарта POSIX, поскольку они имеют смысл лишь для каталогов, которые реализованы с линейным хранением элементов каталога

Помимо предположений, сделанных относительно лежащей в основе структуры каталога, эти процедуры рискованнее использовать, чем простые процедуры чтения каталога. Это связано с тем, что содержание каталога может изменяться динамически: когда файлы добавляются или удаляются из каталога, операционная система приводит в порядок содержание каталога. Поскольку элементы каталога имеют различный размер, может оказаться, что сохраненное ранее абсолютное смещение больше не представляет начало элемента каталога! Поэтому мы не рекомендуем вам использовать эти функции, если вам они действительно не нужны[56].

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Изменение размещения папок и каталогов

Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

Изменение размещения папок и каталогов Изменение размещения папки Избранное Для того чтобы изменить размещение папки Избранное, следует написать новый путь к этой папке в следующий ключ:[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell


Изменение размещения папки Избранное

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Изменение размещения папки Избранное Для того чтобы изменить размещение папки Избранное, следует написать новый путь к этой папке в следующий ключ:[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell


Структура каталогов

Из книги Настройка Windows 7 своими руками. Как сделать, чтобы работать было легко и удобно автора Гладкий Алексей Анатольевич

Структура каталогов Основной каталог носит название WindowsSmpEd3 (от Windows Sample Programs, Edition 3). Для каждой главы предусмотрен отдельный подкаталог. Все заголовочные файлы находятся в каталоге Include, а в каталоге Utilities содержатся такие часто используемые функции, как ReportError или


Выбор сетевого размещения

Из книги Сетевые средства Linux автора Смит Родерик В.

Выбор сетевого размещения При первом подключении к локальной сети система попросит пользователя указать сетевое размещение, которому будет отнесено данное подключение. В соответствие с выбранным размещением будут приведены настройки брандмауэра Windows 7, а также прочие


Описание каталогов

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

Описание каталогов В состав URL входит от двух до четырех компонентов.• Протокол. Первый компонент URL (например, http:// или ftp://) определяет протокол, используемый для взаимодействия. В данной главе в основном обсуждаются серверы, поддерживающие протокол HTTP (в этом случае


Параметры размещения. Плавающие контейнеры

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Параметры размещения. Плавающие контейнеры Местоположение блочных контейнеров (и любых других блочных элементов) на Web-странице определяют два весьма примечательных атрибута стиля.Изначально блочные элементы Web-страницы располагаются на ней по вертикали, строго друг


Параметры размещения. Плавающие контейнеры

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Параметры размещения. Плавающие контейнеры Местоположение блочных контейнеров (и любых других блочных элементов) на Web-странице определяют два весьма примечательных атрибута стиля.Изначально блочные элементы Web-страницы располагаются на ней по вертикали, строго друг


14.3.2. Удаление каталогов

Из книги Интернет – легко и просто! автора Александров Егор

14.3.2. Удаление каталогов Удаление каталога — это практически то же, что и удаление файла; меняется разве что имя системного вызова.#include <unistd.h>int rmdir(char * pathname);Для успешного выполнения rmdir() каталог должен быть пустым (он не должен содержать ничего, кроме вездесущих . и ..); в


Пример размещения сайта

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Пример размещения сайта Если вы думаете, что разместить свой сайт в Интернете довольно проблематично и для этого необходимо быть хорошим специалистом по сетевым технологиям, то вы глубоко ошибаетесь. На самом деле все не просто, а очень просто! Чтобы не быть голословным,


21.1.6. Опции каталогов

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

21.1.6. Опции каталогов Две важнейшие опции каталогов: -I и -L. Первая позволяет указать путь для поиска заголовков (файлов с расширением .h), а вторая — библиотек. Например, если вы хотите, чтобы компилятор использовал файлы заголовков, которые находятся в каталоге /root/include,


Обработка каталогов

Из книги Linux программирование в примерах автора Роббинс Арнольд

Обработка каталогов Пример, рассмотренный выше, относился к администратору последовательного порта. Мы также высказывали предположение, что хотим точного соответствия имен путей при поиске по дереву. Это предположение справедливо только наполовину — все соответствия


5.3. Чтение каталогов

Из книги Поиск персонала с помощью компьютера. Как сэкономить на кадровом агентстве автора Гладкий Алексей Анатольевич


Правила размещения вакансий

Из книги C++ для начинающих автора Липпман Стенли

Правила размещения вакансий Итак, мы уже знаем, как в Интернете можно поискать сотрудников, не прибегая к услугам кадровых агентств. Однако, подавая объявление о вакансии в Интернете, в печатных изданиях либо в иных местах, следует соблюдать определенные правила и


8.4.5. Оператор размещения new А

Из книги Linux Mint и его Cinnamon. Очерки применителя автора Федорчук Алексей Викторович

8.4.5. Оператор размещения new А Существует третья форма оператора new, которая создает объект без отведения для него памяти, то есть в памяти, которая уже была выделена. Эту форму называют оператором размещения new. Программист указывает адрес области памяти, в которой


Из истории систем размещёния

Из книги Вопросы истории: UNIX, Linux, BSD и другие автора Федорчук Алексей Викторович

Из истории систем размещёния Не в интересах правды, а истины ради нужно заметить, что ZFS была отнюдь не первой комплексной системой размещёния данных — хотя её исторические предшественницы также именовались просто файловыми системами.Первой из таких предшественниц


Из истории систем размещения

Из книги автора

Из истории систем размещения Не в интересах правды, а истины ради нужно заметить, что комплексные системы размещения данных – отнюдь не порождение мира FOSS, их корни лежат в недрах проприетаризма. И первой из них была, видимо, файловая система Veritas (или VxFS), разработанная