Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Описатель, командная строка, и переменные окружения процессаЛюбому .exe и .dll модулю, загруженному в адресное пространство процесса, присваивается специальная системная характеристика, которая называется описателем процесса. Для каждого процесса эта характеристика является уникальной, и передается в программу основной функцией первичного потока как первый параметр этой функции. Значение описателя используется в ходе выполнения процесса при вызовах из процесса системных функций, загружающих в память те или иные ресурсы. Конкретное значение описателя равно базовому адресу той части адресного пространства процесса, в которую загружается образ .exe или .dll файла. Значение этого адреса определяется компоновщиком на этапе создания исполняемого файла. Для ряда широко используемых систем программирования этот адрес имеет фиксированное значение (0x00400000). Значение этого адреса для любого процесса можно получить, если в прикладной программе вызвать системную функцию GetModuleHandle (). Параметром этой функции является строка символов, описывающая полное имя .exe или .dll файла, и заканчивающаяся нулями. При создании, новому процессу передается строка символов, которая называется командной строкой. Она представляет собой полное имя исполняемой программы входного потока. В момент запуска программы этого потока стартовая функция читает эту строку, после чего её содержимое используется при создании процесса. Кроме того, командная строка может анализироваться и использоваться в программе любого потока процесса. Её можно прочитать, используя системную функцию GetCommandLine (). Функция возвращает адрес командной строки. С любым процессом связывается также структура данных, которая называется «блок переменных системного окружения». Физически, он представляет собой область памяти, в которой содержатся текстовые строки, описывающие переменные системного окружения процесса. Строки имеют следующий общий формат: <VarName1>=<VarValue1>\0 Переменные окружения используются в программах потоков процесса для детальной настройки этих программ, в частности, в них указываются полные имена файлов, каких-либо иных программ или областей данных. После запуска программы потока, в ней проверяется наличие и значения соответствующих переменных, и реализуется соответствующая настройка программы. В системе существует исходный набор переменных системного окружения, который хранится в файле автозапуска autoexec.bat. Переменные, представленные в этом файле доступны всем процессам, которые запускаются в текущем сеансе работы ОС. Для работы с переменными системного окружения имеются две системные функции: · GetEnvironmentVariable (); · SetEnvironmentVariable (). Первая функция осуществляет чтение системного окружения процессу с помощью описателя, а с помощью второй осуществляется добавление, модификация, удаление переменных системного окружения.
Дата добавления: 2014-10-10; просмотров: 340; Нарушение авторских прав Мы поможем в написании ваших работ! |