функции С и C++, библиотек C++Builder, API Windows________________875

Различия между функциями ехес... определяются их суффиксами, которые
обозначают следующее:

1     В процесс передается список указателей на аргументы argO, argi, ...,
argn. Обычно используется, если число аргументов заранее известно

v    В процесс передается указатель argv[] на массив указателей на аргумен-
ты argO, argi, ..., argn. Обычно используется, если число передаваемых
аргументов может изменяться

р    Файл загружаемой программы ищется в каталогах, указанных в пере-
менной окружения PATH. Если параметр path не содержит явного ука-
зания каталога, поиск ведется сначала в текущем каталоге, а затем в ка-
талогах, указанных в PATH. Если функция не содержит суффикса р, то
файл ищется только в рабочем каталоге

е    В порождаемый процесс может быть передан аргумент env, указываю-
щий на окружение порождаемого процесса. Если функция не содержит
суффикса е, то порождаемый процесс наследует окружение родительско-
го процесса

Каждая из функций ехес... должна передать в порождаемый процесс хотя бы
один аргумент (argO), и по соглашению этот аргумент — копия path. Впрочем, пе-
редача другого значения не является ошибкой. Суммарная длина всех аргументов
(не учитывая нулевых символов, но учитывая пробелы) не должна превышать 128
символов.

В функциях с суффиксом 1 аргументы перечисляются непосредственно в опе-
раторе вызова функции как указатели на строки с нулевым символом в конце. Ко-
личество аргументов не ограничено. Последним аргументом передается NULL, что
является признаком окончания списка.

В функции с суффиксом v в качестве параметра передается указатель на мас-
сив произвольной длины, содержащий указатели на строки, являющиеся аргумен-
тами порождаемого процесса. Последним из указателей в массиве должен быть
NULL, показывающий, что список аргументов завершился.

В функции с суффиксом е передается массив указателей env на строки, опре-
деляющие переменные окружения порождаемого процесса. Эти строки обычно
имеют вид

<имя_переменной> = <значение>

Если env = NULL, то для функций с суффиксом е так же, как и для всех оста-
льных функций, порождаемый процесс наследует окружение родительского про-
цесса.

Файлы, открытые на момент вызова порождаемого процесса, остаются откры-
тыми и для этого процесса. Однако, в порожденный процесс не передается режим,
в котором отрыты файла (текстовый или двоичный). Если режим отличается от
принятого по умолчанию, то в порожденном процессе надо произвести его установ-
ку функциями, рассмотренными в разделах 14.12.2 и 14.12.3.

Поиск файла path, загружаемого функциями ехес..., осуществляется следую-
щим образом. Если в параметре path явно указано расширение файла или стоит
точка, ищется файл такой, который задан. Если же расширение не задано, то сна-
чала ищется файл такой, который задан. Если он не находится, к имени добавля-
ется расширение .ехе и поиск повторяется. Если файл опять не находится, к имени
добавляется расширение .corn и поиск повторяется. Функции без суффикса р ведут
поиск файла только в текущем каталоге (если только каталог не задан явно в
path). А функции с суффиксом р сначала ведут поиск в текущем каталоге, а за-
тем — в каталогах, указанных в переменной окружения PATH.