Операционные системы. Программирование в операционной среде Windows
10 Если такая переменная уже существует, функция модифицирует ее значение. Если параметр spszValue содержится NULL, переменная удаляется из блока. Значения всех переменных окружения можно получить через параметр командной строки char "^envplJ. Массив указателей char *envp[] содержит указатели на строки с переменными окружения. 1.5. Текущие диск и каталог для процесса Текущий каталог текущего диска — то место, где Windows-функции ищут файлы и подкаталоги, если полные пути в соответствующих параметрах не указаны. Этот каталог отслеживается самой системой и, поскольку такая информация относится ко всему процессу, смена текущего диска или каталога одним из потоков распространяется и на остальные потоки в данном процессе. Поток может получать и устанавливать текущие каталог и диск для процесса с помощью двух функций: DWORD GetCurrentDirectoryA( DWORD cchCurDir, PTSTR pszCurDir); Параметр pszCurDir должен указывать на буфер, в который будет помещено полученное значение текущего каталога и диска, а cchCurDir задает размер буфера в символах. BOOL SetCurrentDirectoryA(PCTSTR pszCurDir); Параметр pszCurDir должен указывать на буфер, в котором будет задано устанавливаемое значение каталога и диска. 1.6. Создание процесса Для создания процесса используется функция CreateProcess. Действия операционной системы после вызова функции CreateProcess: - создает ОЯ «процесс» с начальным значением счетчика пользователей = L - создает виртуальное адресное пространство процесса и загружает в него код и данные как для исполняемого файла, так и для любых DLL. - формирует ОЯ «поток» для первичного потока процесса со счетчиком = 1. Работа первичного потока начинается с исполнения стартового кода из библиотеки C/C++, который вызывает одну из входных функций WinMain, wWinMain, main или wmain в программе. Если системе удастся создать новый процесс него первичный поток, то функция CreateProcess вернет значение TRUE.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy