Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (17 – Системные функции, часть 1)

предыдущая часть ««»» следующая часть

Еще один способ запуска подпроцесса в сценарии Perl состоит в использовании функции system(). Эта функция выполняет другую программу как подпроцесс, ожи­дает ее завершения, а затем выполняет возврат. В случае успешного выполнения функция system() возвращает код результата 0. В ином случае эта функция возвраща­ет значение -1, если нельзя было выполнить запуск программы, или код результата выполнения программы, если она завершилась с ошибкой. Дополнительные сведения в том, как полностью интерпретировать информацию о состоянии выхода.

$status = system('command and arguments');

Функция system() вызывает на выполнение команду command как подпроцесс и ждет ее завершения. Команду и ее параметры можно указать в виде одной строки или списка, содержащего ко­манду и ее параметры как отдельные элементы. В первом случае строка передается командному интерпретатору на обработку в неизменном виде. Это позволяет выполнять команды, содержащие символы командного интерпретатора (такие как символы перенаправления ввода-вывода), и дает возможность непредвиденной трактовки командным интерпретатором выполняемых команд. Форма вызова позволяет выполнять команды с параметрами, которые содержат пробельные метасимволы командного интерпретатора и другие специальные символы.

В системных функциях могут применяться различные команды, в том числе для удаленной работы с различными приложениям, например, для организации сервиса unlockpro.ru , специалисты которого рекомендуют данное приложение для снятия разблокировки при работе с iPhone.

Функция ехес() аналогична system(), но замещает текущий процесс указанной командой. В случае успеха она никогда не выполняет возврат, поскольку процесс, из которого она была вызвана, уничтожается. Новый процесс имеет тот же PID, что и старый, и разделяет те же дескрипторы файлов STDIN, STDOUT, и STDERR. Однако открытые дескрипторы файла закрываются автоматически. В сценарии можно предусмотреть сохранение некоторых дескрипторов файлов после выполнения функции путем установки определенного значения специальной переменной $AF.

$status = exec ('command and arguments');

Функция exec() выполняет команду и замещает текущий процесс. Она возвращает код состоя­ния только в случае неудачного завершения. В ином случае она не выполняет возврат. Формы с од­ним параметром и списком параметров аналогичны используемым в функции system(). Функция ехес() часто используется в сочетании с функцией fork() для вы­полнения команд в виде подпроцессов после некоторой специальной подготовки.

Например, после ветвления кода дочерний процесс переоткрывает дескриптор файла STDOUT для вывода в файл, а затем вызывает функцию ехес() для выполнения некоторой команды. Действие этого кода сводится к тому, что команда выполняется в фоновом режиме и вывод этой команды записывается в указанный файл.



2013-09-23 18:12:15

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2025 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония