mikrocontroller.net

Forum: PC-Programmierung [linux] Daten aus konsolenprogramm abfragen


Autor: Paulaner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

Mein Problem:
Ich habe diverse Konsolenprogramme, die Systemzustände abfragen und 
überwachen. Nun will ich diese auf eine Mono C# GUI benutzen. Aber ich 
habe keinen blassen Schimmer, wie ich eine Konsolenapp dazu bringen 
kann, den "Textstring" den es erzeugt abzufragen oder ein neues Komando 
zukommen zu lassen.

Klar, ich könnte etwas wie PROGblafasel >> var machen, also die Ausgabe 
der App mir umpipen, aber die Apps sollen nur einmal gestartet werden 
(jede App läuft in einem eigenen Thread) und dann öfter mal abgefragt 
werden, ohne einen neuen Aufruf der App machen zu müssen.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch, Pipelines sind genau der richtige Ansatz.

http://www.gnu.org/software/libc/manual/html_node/...

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es da nicht noch so etwas wie tee, womit man eine pipe in datei 
und stdout splitten kann?

Eine andere Lösung könnte mit socat möglich sein, wobei die Ausgabe 
auf socat (socket-cat) geschickt wird und die Anwendungen sich per 
TcpIp-Socket-Verbindung damit versorgen lassen. Das klappt dann auch mit 
beliebig vielen Clients (die GUI-Anwendungen) simultan. socat kann dafür 
eine pipe-FIFO-Datei erzeugen, die als Verbindungsstelle "zum Füttern" 
verwendet wird.
Es lohnt sich einmal die Doku zu socat zu studieren.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jubb, tee ist eine Abzweigung :-)
Socat lohnt auf jeden Fall, läuft aber halt auch auf Pipe heraus. Für 
alles Weitere müsste der Fragende mehr Informationen rausrücken...

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht socat so configurieren, daß eine virtuelle Schnittstelle 
entsteht, also ein Pseudo-Terminal, und dabei socat einen Device-Link 
erzeugen lassen. Die Daten erzeugenden Terminals können dann ihre Daten 
auf das "Device" schicken; socat liest die Daten und verteilt sie an die 
GUI-Anwendung(en). - So würde ich das versuchen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.