Как вызвать другой терминал для программного вывода на C в Linux - PullRequest
0 голосов
/ 10 августа 2010

Я новичок в среде Unix.

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


ОК, если быть более точным, я пишу программу чата по TCP / IP на Mac на C. Я хочу разделить ввод и вывод сообщений чата в двух разных терминалах. Я могу найти ресурсы о том, как взаимодействовать между процессами, но я не знаю, как вызвать другой терминал для вывода.

1 Ответ

3 голосов
/ 10 августа 2010

Довольно необычно порождать другой терминал, как вы, кажется, делаете. Более чистым подходом было бы использовать файл (или именованный канал) для получения вывода из вашей программы чата, затем запустить tail -f (или другую программу для правильного форматирования вывода) на другом терминале для отображения его содержимого. Первая клемма будет использоваться для ввода (возможно, с stdin), а вторая клемма будет получать вывод tail.

Пример использования командной строки:

  1. Запустите клиент чата, отправив любой вывод в файл с именем «output»:

    $ ./client [parameters] > output
    
  2. В другом терминале отобразите вывод, прочитав этот файл:

    $ tail -f output
    

Помните, что ваша программа чата должна иметь возможность обрабатывать два разных источника ввода одновременно (входящие сообщения как с сервера, так и от пользователя), возможно, используя select().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...