jondinham
jondinham

Reputation: 8511

Attach a terminal to created thread, in C++ on Linux

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?

Upvotes: 0

Views: 1977

Answers (2)

jondinham
jondinham

Reputation: 8511

As partially answered in this question: 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.

Upvotes: 0

bradgonesurfing
bradgonesurfing

Reputation: 32162

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

http://linuxprograms.wordpress.com/tag/pipes/

Upvotes: 2

Related Questions