Следует отметить, что разобраться в данном формате не сложно, даже встретив его впервые. Он представляет собой набор троек машина/имя/пароль, каждая из которых описывает учетную запись на удаленном узле. Такая прозрачность фактически гораздо более важна, чем экономия времени путем быстрой интерпретации или экономия пространства путем использования более компактного и непонятного файлового формата. Он позволяет сэкономить гораздо более ценный ресурс —
Пример 10.1. Файл .netrc
# FTP-доступ к моему Web-узлу machine Unixl.netaxs.com
login esr
password joesatriani
# Мой главный почтовый сервер в Netaxs machine imap.netaxs.com
login esr password jeffbeck
# Дополнительный почтовый ящик IMAP в CCIL machine imap.ccil.org
login esr
password marcbonilla
# Дополнительный почтовый ящик POP в CCIL machine рорЗ.ccil.org
login esr
password ericjohnson
# Учетная запись shell в CCIL machine locke.ccil.org
login esr
password stevemorse
Также следует отметить то, что данный формат используется для предоставления информации нескольким службам. Это является преимуществом, поскольку означает, что конфиденциальную информацию о паролях необходимо хранить только в одном месте. Формат .netrc был разработан для первоначальной клиентской FTP-npor-раммы в Unix. Данный формат используется всеми FTP-клиентами, а также распознается некоторыми telnet-клиентами, CLI-инструментом
10.3.2. Переносимость на другие операционные системы
Общесистемные конфигурационные файлы являются конструкторской тактикой, которую можно применять почти во всех операционных системах, однако довольно трудно найти соответствие файлам профилей в не-ишх-окружении. Критическим элементом, недостающим в большинстве операционных систем, отличных от
Unix, является действительная поддержка многопользовательской работы и понятие начального каталога для каждого пользователя. В операционной системе DOS и версиях Windows вплоть до ME (включая Windows 95 и 98), например, такая идея полностью отсутствует; вся конфигурационная информация должна храниться либо в общесистемных файлах конфигурации в фиксированной области, реестре Windows, либо в том же каталоге, из которого запускается программа. В Windows NT имеется некоторое понятие о начальных каталогах пользователей (которое послужило началом пути к Windows 2000 и ХР), но оно только недостаточно поддерживается инструментальными средствами системы.
10.4. Переменные окружения
Когда запускается какая-либо Unix-программа, доступная ей среда включает в себя набор связей "имя-значение" (как имена, так и значения являются строками). Некоторые из них устанавливаются пользователем вручную, другие — системой во время регистрации пользователя, либо оболочкой или эмулятором терминала (если таковой используется). В операционной системе Unix в переменных окружения хранится информация о путях поиска файлов, системных установках по умолчанию, номер процесса и идентификатор текущего пользователя, а также другие сведения о среде выполнения программ. Команда set,
введенная в приглашении shell, отображает полный список определенных в текущий момент переменных оболочки.В языках С и С++ значения данных переменных запрашиваются с помощью библиотечной функции
10.4.1. Системные переменные окружения
Существует множество широко известных переменных окружения, значения которых программа может получить при запуске из оболочки Unix. Данные переменные (особенно НОМЕ) часто требуется оценить
USER
Регистрационное имя учетной записи, под которым инициируется данный сеанс (BSD-соглашение).
LOGNAME
Регистрационное имя учетной записи, под которым инициируется данный сеанс (соглашение System V).
НОМЕ
Начальный каталог пользователя, инициализирующего данный сеанс. COLUMNS