Взятие программно отклика исполняемой среды на команду в оную

Рейтинг: 0Ответов: 1Опубликовано: 05.06.2011

Знаю как передать из программы команду в исполняемую среду
< unistd.h >
system("");
пример для линуха.
Вопрос: как взять в программу, ответ на команду средой?
пример: передаю команду (в bash) pwd, которая выводит адрес текущей директории, как можно взять его например в строку?
Или еще: посылаю команду ping, как ее остановить? передача символа ^C не помагает, вернее он передается, когда я уже вручную останавливаю пингование.

Ответы

▲ 2Принят

Пример из link text что-ли...

#include <stdio.h>
#include <stdlib.h>
main()
{
   char *cmd = "/usr/bin/ls *.c";
   char buf[BUFSIZ];
   FILE *ptr;

   if ((ptr = popen(cmd, "r")) != NULL) {
           while (fgets(buf, BUFSIZ, ptr) != NULL)
                   (void) printf("%s", buf);
           (void) pclose(ptr);
   }
   return 0;
}

Или нужны примеры использования других вызовов: pipe, fork, exec, wait?