Операционные системы. Программирование в операционной среде Windows
7 1.3. Командная строка процесса При создании новому процессу передается командная строка, которая почти никогда не бывает пустой — как минимум, она содержит имя исполняемого файла, использованного при создании этого процесса. В момент запуска приложения стартовый код из библиотеки C/C++ считывает командную строку процесса, пропускает имя исполняемого файла и заносит в параметр pszCmdLine функции (w)WinMain указатель на оставшуюся часть командной строки. Параметр pszCmdLine всегда указывает на ANSI-строку. По, заменив WinMain на wWinMain, можно получить доступ к Unicode-Bepcnn командной строки для своего процесса. В консольных приложениях параметр argv[0] содержит указатель на строку с именем исполняемого файла, argv[l], argv[2],..., argv[argc-l] - указатели на строки символов с параметрами. Каждый параметр завершается нулевым символом - '\0'. Параметр argc определяет количество параметров командной строки. Если требуется числовое значение параметра, то его необходимо преобразовать из строки символов в числовой тип. Например, запускается программа вызовом следующей команды: lab_OC_l.exe input.txt output.txt 150 0 Для получения числового значения последнего параметра необходимо воспользоваться стандартной функцией atoi, которая преобразует строку в тип int: int n = atoi(argv[3]); Указатель на полную командную строку процесса можно получить и вызовом функции GetCommandLine. PTSTR GetCommandLineО; Функция возвращает указатель на буфер, содержащий полную командную строку, включая полное имя исполняемого файла. 1.4. Переменные окружения С любым процессом связан блок переменных окружения — область памяти, выделенная в адресном пространстве процесса. Каждый блок содержит группу строк следующего вида: VarNamel=VarValuel\0 VarName2=VarValue2\О ... \0 Первая часть каждой строки — имя переменной окружения. За ним следует знак равенства и значение, присваиваемое переменной. Строки в блоке переменных окружения отсортированы в алфавитном порядке по именам переменных. Конец блока переменных окружения помечается дополнительным нулевым символом.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy