如何在Linux中以C语言编程调用另一个终端输出

问题描述:

我对Unix环境很陌生。如何在Linux中以C语言编程调用另一个终端输出

我想有一个小聊天程序,初始终端用于输入,并调用另一个终端输出。我一直在寻找网页,但没有任何运气。


OK,更具体,我在Mac中下在TCP/IP写一个聊天程序我想输入和聊天信息输出分开在两个不同的终端。我可以找到有关如何在进程之间进行通信的资源,但我不知道如何为输出调用另一个终端。

+1

我想你需要更具体,如果你想得到一个有意义的答案你的问题。例如,您可以询问如何调用另一个终端,提供您正在使用的桌面环境(KDE,Gnome等)和终端程序的详细信息。或者你可以问你可以用什么方法让两个终端相互通信。 (FIFO管道,TCP/IP套接字,UNIX套接字,共享内存等)或者您可以选择其中一个,并询问您可以在哪里找到指示如何使用它的资源。找出你需要知道的第一个,并编辑这个问题来反映它。 – 2010-08-10 02:42:18

按照你似乎正在做的方式产生另一个终端是非常不寻常的。更清晰的方法是使用文件(或命名管道)从聊天程序接收输出,然后在另一个终端上运行tail -f(或其他程序以正确格式化输出)以显示其内容。第一个终端将用于输入(可能从stdin),第二个终端将接收输出tail

的样本命令行用法是:

  1. 运行聊天客户端,发送任何输出到名为“输出”文件:

    $ ./client [parameters] > output 
    
  2. 在另一终端中,显示通过读取该文件输出:

    $ tail -f output 
    

请记住,您的聊天程序应该能够同时处理两个不同的输入源(来自服务器和用户的输入消息),可能使用select()

+0

这似乎是一个可行的解决方案。谢谢 – shawn 2010-08-11 09:24:00