Среда процесса

При загрузке программы DOS, кроме программного сегмента, создает для нее еще и сегмент окружения (environment). Сегмент окружения содержит ASCIIZ-строки, задающие значения некоторых глобальных переменных, они доступны командным файлам и - через PSP - программам. Набор строк окружения заканчивается пустой ASCIIZ-строкой (нулем). В DOS 3.0 и выше за ним следует еще 2-байтное число строк вызова и далее - строка (или строки) вызова программы. Обычно в первую (до строк вызова) часть порождаемой программы копируется содержимое окружения программы-родителя.
При запуске программы из программы суффикс e функции SPAWN указывает на то, что одна или несколько строк окружения будут переданы потомку через массив указателей на строки. Каждая такая строка должна иметь вид

ПЕРЕМЕННАЯ_ОКРУЖЕНИЯ=ЗНАЧЕНИЕ.

Последний указатель в массиве должен быть NULL. Если первый элемент массива является NULL, то процесс – потомок сохраняет то же самое окружение, что и потомок родитель.

В WindXP для просмотра и редактирования необходимо:

открыть компонент “Панель управления - Система”. На вкладке “дополнительно” окна св-ва системы выбрать “Переменные среды”. В окне будут переменные среды и элементы для работы.

Формат блока переменных окружения.

Это ANSIZ- строки, закрытые нулевой строкой.

Формат строки.

VARNAME value1\0

USERNAME vale\0

valueN\0\0

В явном виде строки применяются в файле AutoErec.Dat

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

Модификация разрешена пользователю с правом администрирования.

Информация о наличии переменной окружения и ее значения можно получить с помощью:

GetEnvironmentVariable(…)

Принимает указатель на имя VarName и и возвращает значения в буфер пользователя.

Функция SetEnvironmentVariable

Позволяет удалить, модифицировать значения переменной среды с именем VarName.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: