Книга: Системное программирование в среде Windows
Блоки и строки окружения
Схема, представленная на рис. 6.1, включает блок окружения процесса. Блок окружения (environment block) процесса содержит последовательность строк вида:
Имя = Значение
Каждая строка окружения (environment string), будучи символьной строкой, заканчивается нулевым символом, а весь блок строк в целом завершается дополнительным нулевым символом. Одним из примеров широко используемых переменных среды является переменная PATH.
Чтобы передать информацию об окружении из родительского процесса в дочерний, параметр lpEnvironment при вызове функции CreateProcess следует установить равным NULL. В свою очередь, любой процесс может запросить или изменить свои переменные окружения или добавить новые в блок окружения.
Для получения, а также создания новых или изменения существующих переменных окружения используются следующие функции:
DWORD GetEnvironmentVariable(LPCTSTR lpName, LPTSTR lpValue, DWORD cchValue)
BOOL SetEnvironmentVariable(LPCTSTR lpName, LPCTSTR lpValue)
lpName — указатель на строку, содержащую имя переменной окружения. После определения переменной окружения она добавляется в блок окружения при условии, что такая переменная ранее не существовала, а определяемое значение не равно NULL. Если же определяемое значение равно NULL, то переменная удаляется из блока. Строка значения не может содержать символы "=".
В случае успешного завершения функция GetEnvironmentVariable возвращает длину строки значения переменной окружения, иначе — 0. Если размер буфера lpValue, указанный значением параметра cchValue, оказался недостаточно большим, то возвращаемое значение равно количеству символов, которое фактически требуется для сохранения значения переменной. Вспомните, что аналогичный механизм используется и в функции GetCurrentDirectory (глава 2).
- Инструмент командной строки gbak
- Инструмент командной строки gfix
- Статистика по блокировкам
- Создание файлов с блокировкой
- Использование переменной окружения ISC_PATH
- Преобразование строки в целое: stoi( )
- Не допускайте того, чтобы поток пользовательского интерфейса блокировался на длительное время
- Часть I Скрываем свое местонахождение и посещаем заблокированные сайты
- Блоки питания, используемые в компьютерах
- ГЛАВА 8 Блокировки чтения-записи
- Не хочу, чтобы компьютером пользовались в мое отсутствие. Как установить пароль и блокировать машину?
- Запросы, подсчитывающие строки