πŸš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
2 messages
2 total messages Started by Torsten Vogt Tue, 05 Dec 1995 12:44
Frage zur Umleitung von STDIN/STDOUT
#957
Author: Torsten Vogt
Date: Tue, 05 Dec 1995 12:44
36 lines
1611 bytes
Hallo,

ich habe zur Zeit ein kleines Problem:

Kann man aus einem C/C++-Programm ein xterm so starten, dass STDIN
und STDOUT des C/C++-Programmes auf das xterm umgeleitet werden?

Also ein Beispiel:

ich starte zur Laufzeit ein xterm z.B. mit

   system("xterm");

dann biege ich STDIN u. STDOUT auf das xterm um

   // ich weiss nicht wie das geht

und dann schreibt z.B. folgende Anweisung auf das xterm:

   cout << "Hallo" << endl;

Im voraus vielen Dank.

Torsten

-- 
---------------------------------------------------------------------
| Torsten Vogt                                                      |
|  Universitaet Mannheim - Lehrstuhl Praktische Informatik I        |
|  Seminargebaeude A5                                               |
|  D-68131 Mannheim                                                 |
|                                                                   |
|  Tel  : 0049-621/292-5132  Fax: 0049-621/292-5297                 |
|  email: vogt@pi1.informatik.uni-mannheim.de                       |
|  WWW  : http://pi1.informatik.uni-mannheim.de/HomePages/vogt.html |
---------------------------------------------------------------------
Re: Frage zur Umleitung von STDIN/STDOUT
#976
Author: Hans-Ch. Eckert
Date: Thu, 07 Dec 1995 14:55
47 lines
2240 bytes
In <4a1eqh$qg3@trumpet.uni-mannheim.de>, vogt@pi1.uni-mannheim.de (Torsten Vogt) writes:
] Kann man aus einem C/C++-Programm ein xterm so starten, dass STDIN
] und STDOUT des C/C++-Programmes auf das xterm umgeleitet werden?

Im Prinzip ja, aber mit dem Ansatz wirst Du Probleme bekommen.

] 
] Also ein Beispiel:
] 
] ich starte zur Laufzeit ein xterm z.B. mit
] 
]    system("xterm");

Das ist schonmal schlecht, weil Dein Programm erst dann weiterlaeuft,
wenn das xterm beendet wird (Siehe system(3)).

] dann biege ich STDIN u. STDOUT auf das xterm um
] 
]    // ich weiss nicht wie das geht

Du nimmst Dir ein Paar von Pseudo-ttys und startest das xterm mit der
Option -Sccn (siehe xterm(1)), so dass das xterm die I/O ueber das
Pseudo-tty abwickelt.

] und dann schreibt z.B. folgende Anweisung auf das xterm:
] 
]    cout << "Hallo" << endl;

Entweder nimmst Du Dir einen eigenen Stream und benutzt dann den, oder
Du musst die urspruenglichen Kanaele schliessen/umlegen (siehe dup(2))
und dann das Pseudo-tty auf dem entsprechenden Kanal oeffnen.
Einen eigenen Stream zu verwenden ist sicher guenstiger...

Um das xterm zu starten, solltest Du besser auf fork/exec zurueckgreifen.

Beispielcode findest Du z.B. bei Seyon.

Gruss,
				Ripley

PS: Followup nach de.comp.os.unix !

-- 
Hans-Ch. Eckert,   Regensburger Str.2,  10777 Berlin,   Germany * ISO 8859-1
(intl) ripley@nostromo.in-berlin.de,                            *  Γ„ Γ– Ü
Alternative: ripley@cs.tu-berlin.de                             *  aeoeuess
NeXTmail: hansagia@w271zrz.zrz.tu-berlin.de (and nowhere else!) *  À â ü ß
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads