LINUX.ORG.RU

Запуск программы через system. Как узнать результаты

 ,


0

1

Здравствуйте. Использую вызов system() для запуска консольной программы. Все работает, однако, если я указываю неправильный аргумент для консольной программы, то system все равно вернет 0, что в принципе верно, т.к. Программа выдает ошибку в консоль, которой не видно. Вопрос - есть ли способ как-то узнать, что выдает консольная программа, но без вывода самой консоли? Перехватить текст и вывести его в GUI?

Заранее спасибо


system использует bash -c для того чтобы запустить команду bash видимо успешно завершается и не передаёт дальше код выхода.

deadline
()
#include <fcntl.h>
#include <stdio.h>

int main()
{
    int log = open("out.log", O_CREAT|O_WRONLY, S_IRWXU);

    dup2(stdout, log);/* dup2(stderr, log); */
    system("foo");

    return 0;
}
deadline
()
Ответ на: комментарий от deadline

Отсутствие нормальных знаний Linux мешает :) Сделал как вы посоветовали, проблема исчезла. Спасибо огромное)

gwyllum
() автор топика

не запускать через system. пайпы, fork и execvp наше все

Stil ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.