Question: I'm developing a chat server in C++. The programme is built and run from a terminal. As running in the terminal, I can write to this terminal normally using '`printf`'. Some of the information written to this terminal are the alerts of new incoming connections, outgoing connections, etc.

Now I need to get the keyboard input so that admin can type commands to see the values of variables in the chat server. I intend to create a new thread and attach a new terminal to it. A suggestion is to call system("gnome-terminal"), but it requires a little delay with `sleep()`, doesn't seem to be a good choice because all the contents redirected to this gnome-terminal will be considered as bash commands. And I don't know how to attach the terminal opened by '`system`'` command to the thread.

Any simple way to attach a terminal to created thread?

Answer: 
Maybe have a read of this on how to use pipes in Linux

<http://linuxprograms.wordpress.com/tag/pipes/>
As partially answered in this question: [Avoid gnome-terminal close after script execution?](https://stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution) 

There is a good option like this:

(1) Use the main terminal for normal input/ouput.

(2) Create log file (log.file) before calling 'tail'

(3) Use 'tail' command for showing log contents (log files)

```
//c++ code
system("gnome-terminal -e \"bash -c 'tail -f log.file'\"");

```

(4) Append the content to 'log.file' to tell 'tail' to show it up.