[C] Linux Programmkonsolenausgabe umleiten

OliverD

Grünschnabel
Hallo,

ich hab folgende Frage:

Ist es möglich mit C unter Linux die Ausgabe des Programms in eine neue/andere Kosole zu schreiben.

Beispiel:

Konsole 1> ./myprog
...
Konsole 2>
Hallo Konsole 2

--------------------------------------

Hab schon mal nach Möglichkeiten gesucht, doch leider nichts gefunden. :(

Falls ja, wäre ich für einen Beispielcode oder Link sehr dankbar.

Danke,
Oliver :)
 
Also ich weiß nur wie es theoretisch geht, kann dir also keinen beispielcode geben sorry...

Prinziell musst du die andere console zuerst öffnen, und einen Low-Level IO File-Handle darauf bekommen.. dann musst du den handle in den handle von stdout rein duplizieren.. is prinziell nicht schwer, aber ich hab die komandos dafür leider net im kopf
 
Hi,

Danke erstmal für die Antwort.
Werde mich mit beschäftigen und ein wenig probieren.

Bin im Internet jetzt bei Kernelentwicklerseiten auf die Funktion ioctl gestoßen.

Mit der Funktion soll man die Augabe umleiten können.

Bin aus den Seiten aber net schlau geworden... da die nur Beispiele mit Kerneltreibern haben. :(

Oliver
 
also dann eben nochmal...

dub2(_open("/dev/tty2", _O_APPEND), 1);

aber vorher bitte den handle von stdout kopieren sonst ist der nämlich verloren,...

int oldHandle = dup(1);
dup2(_open("/dev/tty2", _O_APPEND), 1);

wenn du fertig bist einfach
dup2(oldHandle, 1);
 
Zurück