Книга: Искусство программирования для Unix
17.5.2. Обход системных зависимостей
17.5.2. Обход системных зависимостей
После выбора языка и библиотек поддержки следующим вопросом переносимости обычно является расположение ключевых системных файлов и каталогов: почтовых спулов, каталогов журнальных файлов и т.д. Прообразом данного типа проблем является то, где расположен каталог почтового спула — /var/spool/mail
или /var/mail
.
Часто можно избежать этого вида зависимости, отступив и воссоздав проблему. Зачем, так или иначе, открывать файл в каталоге почтового спула? Если запись в него необходима, то, возможно, лучшим решением будет просто вызов локального почтового транспортного клиента, с тем чтобы блокировка файла была выполнена верно. Если выполняется чтение из почтового каталога, то, вероятно, лучше будет обратиться к нему посредством POP3- или IMАР-сервера.
Подобные вопросы применимы и к другим системным файлам. Не лучше ли, например, вместо ручного открытия журнальных файлов воспользоваться средствами syslog(3). Интерфейсы вызова функций через библиотеку С стандартизированы лучше, чем расположение системных файлов, и этим следует пользоваться.
Если параметры расположения системных файлов должны присутствовать в коде, то наилучшая альтернатива зависит от способа распространения дистрибутива: исходный код или бинарная форма. Если распространяется исходный код, то могут помочь инструменты autoconf, которые рассматриваются в следующем разделе. В случае распространения бинарных файлов хорошей практикой будет заставить программу получать начальные параметры системы и выяснять, возможно ли автоматически настроиться на локальные условия, например, путем проверки существования каталогов /var/mail
и /var/spool/mail
.
- Почему необходима миграция
- Уменьшение времени, необходимого для резервного копирования и восстановления
- Модификация системных таблиц
- Обход дерева
- Определение необходимого системного вызова
- Добавление списка необходимых предметов
- Глава 2. Что необходимо для беспроводной связи
- Можно ли избавиться от необходимости использовать двойной щелчок кнопкой мыши при открытии папки?
- 7.6. Обход элементов массива
- 4.13.2. Обход сетевого экрана
- 5.13. Необходимый набор программ, для полноценной работы на компьютере
- 8.5. Обход дерева файлов: GNU du