14.5.1. Использование подпроцесса

14.5.1. Использование подпроцесса

Самый старый метод универсализации предусматривает запуск оболочки в качестве дочернего процесса и указание ей универсализировать файловые имена. Стандартная функция popen() (см. главу 10) упрощает этот метод — просто запустите команду ls *.с с помощью popen() и прочитайте результат. Этот подход может показаться несколько упрощенным, но все же он обеспечивает переносимое решение проблемы универсализации (вот почему приложения вроде Perl используют его).

Ниже приведена программа, которая универсализирует все аргументы и отображает все совпадения.

 1: /* popenglob.c */

 2:

 3: #include <stdio.h>

 4: #include <string.h>

 5: #include <sys/wait.h>

 6: #include <unistd.h>

 7:

 8: int main(int argc, const char ** argv)

 9:  char buf[1024];

10:  FILE * ls;

11:  int result;

12:  int i;

13:

14:  strcpy(buf, "ls");

15:

16:  for (i = 1; i < argc; i++) {

17:   strcat(buf, argv[i]);

18:   strcat(buf, " ");

19:  }

20:

21:  ls = popen(buf, "r");

22:  if (!ls) {

23:   perror("popen");

24:   return 1;

25:  }

26:

27:  while (fgets(buf, sizeof(buf), ls))

28:   printf("%s", buf);

29:

30:  result = pclose(ls);

31:

32:  if (!WIFEXITED(result)) return 1;

33:

34:  return 0;

35: }

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Использование

Из книги Разгони свой сайт автора Мациевский Николай

Использование Во-первых, мы сперва должны подключить библиотеку cssexpr.js (о ней речь чуть ниже) и только потом вызывать нашу функцию constExpression.<script type="text/javascript" src="cssexpr.js"></script>После этого можно использовать constExpression в любом задаваемом блоке стилей (<style>), или любом


3.3.3. Использование RPM

Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

3.3.3. Использование RPM Программа RPM не имеет графического интерфейса, поэтому запускать ее нужно в консоли или в терминале (команда меню Приложения?Системные?Терминал). Формат вызова программы rpm следующий:rpm [-опции] [пакеты]Напомню, что установка программ - это привилегия


Использование

Из книги Симуляция частичной специализации автора Кузнецов Павел

Использование Метапрограммирование и метафункции Прежде чем перейти к изложению дальнейшего материала, полезно ввести понятия метапрограммирования и метафункции. Если внимательнее посмотреть на то, что происходит, когда компилятор встречает пример, подобный


19.7.2. Использование erb

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл


Использование tar

Из книги Сетевые средства Linux автора Смит Родерик В.

Использование tar Утилита tar — одна из самых популярных программ, используемых для резервного копирования в системах Linux и UNIX. Она объединяет несколько файлов в один файл архива, что упрощает передачу информации по сети и сохранение ее на резервном носителе. Название


Использование ip

Из книги Технология XSLT автора Валиков Алексей Николаевич

Использование ip Программа ip предназначена для управления таблицами маршрутизации, в частности, правилами, определенными в них. Выполнение данной программы зависит от значений некоторых подопций опции IP: Advanced Router. Программа ip вызывается следующим образом:ip команда [list |


Использование tc

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Использование tc Утилита tc использует средства ядра, которые активизируются посредством опций меню QoS and/or Fair Queueing. Данная программа управляет исходящим трафиком, в частности, не позволяет одному типу трафика монополизировать пропускную способность линии связи. В


Использование VPN

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Использование VPN VPN позволяет расширить локальную сеть за счет взаимодействия с внешними компьютерами. Очевидно, что если локальная сеть подключена к Internet, внешние пользователи могут обращаться к ней без VPN. Однако VPN имеет ряд преимуществ перед обычными типами сетевого


Использование

Из книги автора

Использование По сути дела, Xalan Java и Xalan C++ — это библиотеки, позволяющие использовать XSLT-преобразования в собственных проектах. Xalan Java поддерживает набор интерфейсов TrAX (от англ. transformation API for XML — программный интерфейс преобразований для XML), определяющий стандартные


Использование

Из книги автора

Использование Легкий вариант, Instant Saxon представляет собой утилиту командной строки saxon.exe, с помощью которой можно применять преобразования к XML-документам:saxon.exe -о result.xml source.xml stylesheet.xslПолная версия Saxon (включающая также исходный код) тоже может использоваться как утилита


Использование

Из книги автора

Использование Главной областью применения Oracle XSLT Processor является его использование совместно с технологиями XSQL и XSU для обеспечения Web-доступа к реляционным данным. Кроме этого, Oracle XSLT Processor легко интегрируется в другие приложения и также может выполняться из командной


Использование

Из книги автора

Использование Как и любой другой XSLT-процессор, написанный на Java, xt можно без труда использовать в Java-проектах. Помимо этого, xt можно использовать в качестве сервлета и из командной строки.Сервлет-версия xt реализована в классе com.jclark.xsl.sax.XSLservlet и может выполняться на


Использование

Из книги автора

Использование Прежде всего, как C-библиотеку, libxslt можно подключать к собственным модулям посредством документированного API, а также при помощи разработанных врапперов использовать в Perl и Python-программах. Поскольку по степени совместимости и разработанности libxslt явно


14.7.1. Использование ftw()

Из книги автора

14.7.1. Использование ftw() #include <ftw.h>int ftw(const char *dir, ftwFunctionPointer callback, int depth);Функция ftw() начинает с каталога dir и вызывает указанную в callback функцию для каждого файла в этом каталоге и его подкаталогах. Функция вызывается для всех типов файлов, включая символические ссылки и


29.4.3. Использование SSI

Из книги автора

29.4.3. Использование SSI Использование сценариев cgi, открывающих Web–страницы с целью отображения небольшого количества сведений, не всегда является оправданным. Например, была отображена дата, но также был создан сценарий cgi, который тоже отображает дату. Не лучше ли было бы