Russian Belarusian English German Japanese Ukrainian

Execlp

CuBook45

Функция execlp позволяет выполнить из своего приложения любое указанное приложение, передав ему управление. Вызванная программа замещает в памяти вызвавшее ее приложение. Таким образом, родительское приложение завершается и начинается новое.
 
Функция execlp определена в файле process.h (не забывайте включать его в приложение соответствующей директивой #include) следующим образом:
int execlp(char *path, char *arg0,*arg1, ..., *argn, NULL)
Параметр path определяет имя и путь к приложению, которое требуется выполнить. Если в path указан путь и имя файла с расширением, то функция ищет именно этот файл. Если же расширение файла не задано, то сначала ищется файл такой, который задан. Если он не находится, к имени добавляется расширение .exe и поиск повторяется. Если файл опять не находится, к имени добавляется расширение .com и поиск повторяется. Если в path не задан путь, то сначала поиск файла производится в текущем каталоге. Если в нем требуемый файл не найден, то поиск продолжается в каталогах, указанных в переменной окружения PATH.
 
Аргументы функции arg0 - argn являются параметрами, передаваемыми в запускаемую на выполнение программу через командную строку. Функция должна передать в запускаемое приложение хотя бы один аргумент arg0. По соглашению этот аргумент копия path. Впрочем, передача другого значения не является ошибкой. Остальные аргументы, если они требуются, передают в запускаемую программу дополнительную информацию. Если она состоит из нескольких слов, например, из нескольких опций, то можете каждое слово передавать отдельным аргументом, а может все их объединить в одну строку arg1. Последний аргумент функции execlp - NULL является признаком окончания списка аргументов. Функция execlp возвращает 0 при успешной загрузке нового приложения, а при ошибке возвращает -1.
 
Пример №1

Оператор завершает выполнение вашего приложения и передает управление программе с выполняемым файлом F1.exe. Этот файл должен быть расположен в рабочем каталоге или в одном из каталогов, указанных в переменной окружения PATH. Иначе функция execlp вернет -1 и будет выдано сообщение функцией ShowMessage. Аналогичное сообщение будет выдано если, например, для загрузки F1.exe не хватает оперативной памяти.
if(execlp("F1.exe","F1.exe", NULL))
ShowMessage("Программа F1.exe не выполнена");
 
Пример №2

Оператор передает управление программе Norton Commander (файл nc.exe), если только путь к этой программе указан в переменной окружения PATH.
execlp("nc","nc", NULL);
 
Пример №3

Оператор передает управление DOS, если только путь к файлу command.com указан в переменной окружения PATH.
char *prog = "command.com";
execlp(prog, prog, NULL);
 
Пример №4

Оператор запускает редактор Word и передает в него файлы F1.doc и F2.doc.
execlp("Winword","Winword", "F1.doc", "F2.doc", NULL))
 
Сфера применения функции execlp:
- построение входного интерфейса к какому-то приложению, работающего только перед запуском этого приложения;
- создание оверлэйных приложений, загружаемых в память по частям.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий