Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> внешнии команды 
:(
    Опции темы
Step
Дата 15.9.2005, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



из проги на с выполнить внешнюю команду например ping vingrad.ru
и получить то что она вывела

выполнить понятно как, а вот как выполнить что бы и ответ ее получить не понятно




--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
chaos
Дата 15.9.2005, 05:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 3
Всего: 44



в QT есть функция типо StartProcess(точно не помню) с помощью нее можно получить результат, но наверное тебя такое решение не устраивает)
Потом можно перенаправить вывод в файл и читать уже файл
Ну и 3 вариант самый правельный создать пайпы и связать их с STDOUT, STDIN, STDERR запускаемого приложения
PM WWW   Вверх
Step
Дата 15.9.2005, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



про третий варинт подробнее можно


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
chaos
Дата 15.9.2005, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 3
Всего: 44



а вот глянь черкнул тебе примерчик
Код

#include <stdio.h>
#include <unistd.h>

int main ()
{
    int fifo[2], status;

    pid_t child_pid;
    char buf[80];
    
    if (-1 == pipe(fifo)) printf("Error create pipe\n"), exit(0);

    switch (child_pid = fork())
    {
    case -1:
    {
        printf("error");
        exit(0);
    }
        
    case 0: //child process
    {
            //перенаправляем STDOUT ребенка STDIN родителя
            if (dup2 (fifo[1], STDOUT_FILENO) == -1) 
            {
                printf("error dup2");
                exit(0);
            }
        
            close(fifo[0]);
            close(fifo[1]);

            execlp ("ping", "ping", "-c 5", "vingrad.ru", NULL);
            perror("execlp");
 
            exit(0);
        }
    }

    close(fifo[1]);
    
    while (read (fifo[0], buf, 80))
        printf (buf);
    
    close(fifo[0]);
    if (waitpid(child_pid, &status, 0) == child_pid)    
        return 0;
    
    return 0;
}

Добавлено @ 12:27
ну компилять как обычно
gcc -s -o redirect.bin redirect.c
Добавлено @ 12:28
не забывай про расширение smile

Это сообщение отредактировал(а) chaos - 15.9.2005, 13:01
PM WWW   Вверх
chaos
Дата 15.9.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 3
Всего: 44



все проверено, все работет smile
PM WWW   Вверх
Step
Дата 15.9.2005, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



сенкс буду разбираться


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Guest
Дата 19.9.2005, 01:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











popen/pclose рулит.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.