Streamübergabe an Linux-Programm

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Streamübergabe an Linux-Programm

Beitrag von Antrepolit »

Hallo Leute.

Ich hätte mal eine Frage. Bisher habe ich nur Dos- und Windows-Programme geschrieben,
nun muss ich an Linux ran. :oops:
Ich habe einen VDR und möchte den MPEG2-Strom fortlaufend an mein
Programm weiterleiten über ein Pipe. Wie muss ich vorgehen, um den Datenstrom mit meinem
Programm aufzunehmen? Das Programm muss leider komplett ohne Grafik auskommen,
also reine Konsole, da der VDR keine GUI installiert hat, und das Programm ausschließlich
über Konsole verwendet wird.
Grüße, Antrepolit

care only if your os is really burning

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »


Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Antrepolit »

Japp, schon gesehen.
Aber afaik kann man bei Linux den Datenstrom in ner Gerätedatei abgreifen. Muss ich dann
einfach nur diese Gerätedatei öffnen und kontinuierlich herauslesen?
Grüße, Antrepolit

care only if your os is really burning

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

stdin musst du öffnen und dort abgreifen

müsste also mit read gehn.

TProcess brauchst du gar net,
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Antrepolit »

@Christian: wie meinst du das mit stdin?

AssignFile(file,'stdin'); ?
reset(f);
read(f,string);

Das wäre ja fast zu einfach... und dann womöglich auch noch nach stdout schreiben, ohne
dass ich ne Datei damit erzeuge, die überläuft?
Grüße, Antrepolit

care only if your os is really burning

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Antrepolit hat geschrieben:@Christian: wie meinst du das mit stdin?

AssignFile(file,'stdin'); ?
reset(f);
read(f,string);

Das wäre ja fast zu einfach... und dann womöglich auch noch nach stdout schreiben, ohne
dass ich ne Datei damit erzeuge, die überläuft?


Im Prinzip schon, nur wer übernimmt dann den Output von stdout. Das Verhalten von stdin und stdout ist schon genial. Wenn du ein File daraus machen willst mit etwas mehr kontrolle bezüglich überlauf, dann wird dein Propgramm vom stdin lesen müssen und dann das ganze selbst auf die Platte bannen, mit entsprechden Kontrollen bezüglich Dateigröße und Plattenplatz.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Nö.

read(string);

sollte bereits von der stdin lesen.

write(string);

schreibt auf die stdout.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten