376______________________________________________Глава 6

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

Аргументы функции argO — argn являются параметрами, передаваемыми в
запускаемую на выполнение программу через командную строку. Функция дол-
жна передать в запускаемое приложение хотя бы один аргумент argO. По соглаше-
нию этот аргумент — копия path. Впрочем, передача другого значения не является
ошибкой. Остальные аргументы, если они требуются, передают в запускаемую
программу дополнительную информацию. Если она состоит из нескольких слов,
например, из нескольких опций, то можете каждое слово передавать отдельным
аргументом, а может все их объединить в одну строку argl. Последний аргумент
функции execlp — NULL является признаком окончания списка аргументов.

Функция execlp возвращает 0 при успешной загрузке нового приложения, а
при ошибке возвращает -1.

Рассмотрим примеры использования функции execlp. Оператор

if(execlp("F1.ехе","FI.exe", NULL))
ShowMessage("Программа FI.exe не выполнена");

завершает выполнение вашего приложения и передает управление программе с
выполняемым файлом FI.exe. Этот файл должен быть расположен в рабочем ката-
логе или в одном из каталогов, указанных в переменной окружения PATH. Иначе
функция execlp вернет -1 и будет выдано сообщение функцией ShowMessage. Ана-
логичное сообщение будет выдано если, например, для загрузки FI.exe не хватает
оперативной памяти.
Оператор

execlp("nc", "nc", NULL);

передает управление программе Norton Commander (файл пс.ехе), если только
путь к этой программе указан в переменной окружения PATH.
Оператор

char * prog = "command.corn";

execlp(prog,prog, NULL);

передает управление DOS, если только путь к файлу command.com указан в пере-
менной окружения PATH.
Оператор

execlp("Winword", "Winword", "Fl.doc", "F2.doc", NULL))

запускает редактор Word и передает в него файлы Fl.doc и F2.doc.

Мы рассмотрели только одну функцию execlp — из целого семейства, включа-
ющего 8 подобных функций. Подробную информацию о них вы найдете в главе 14
в разделе 14.14.2. По своим основным характеристикам все эти функции анало-
гичны execlp, различаясь только каталогами, в которых ищется файл, передачей в
новое приложение переменных окружения и заданием аргументов функции.

Рассмотренные функции могут найти достаточно ограниченное применение,
поскольку они обеспечивают безвозвратную передачу управления из вызвавшего
приложение в новое. И для возврата в исходное приложение надо принимать спе-
циальные меры: например, вызванное приложение в конце своей работы должно
аналогичной функцией execlp вызвать первоначальное приложение. Зато у этих
функций есть и большое преимущество — оверлэйная загрузка приложений. Но-
вое приложение загружается в оперативную память на место вызвавшего его при-
ложения. Соответственно сокращаются затраты памяти, так как не требуется дер-
жать в ней оба приложения.

Таким образом, сфера применения функции execlp: