Программирование на Linux, чтение системных входов, таких как ping или ls -l - PullRequest
4 голосов
/ 04 марта 2010

я пытаюсь создать собственный метод, который вызывает возврат char с системным выводом

такой псевдокод.

char *my_Out(char *in ){
    in = system ("ping %s",in);
    return in;
}

спасибо за помощь.

Ответы [ 3 ]

5 голосов
/ 04 марта 2010

Вы можете использовать popen, который возвращает вам поток, из которого вы можете прочитать вывод. Читая до конца файла, в строку (возможно, динамически растущую по мере необходимости), вы можете реализовать то, что вам нужно.

2 голосов
/ 04 марта 2010

Несколько вещей

  1. system() не является функцией стиля printf. Вам нужно будет использовать sprintf() для создания аргумента раньше.
  2. system() является целым, а не символом
  3. Обычно не рекомендуется перезаписывать параметры функций.

Что вы пытаетесь сделать? Похоже, что эта функция запускает ping (который без аргумента -c никогда не завершит работу в linux).

1 голос
/ 04 марта 2010
 Duplicate the stdout to some other file descriptor by using dup2.After the execution of the command read all the lines from the file using that file descriptor and return it.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...