PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nicolas



Nicolas
30-03-2002, 15:26
Hallo!

Ich möchte ein Programm schreiben, dass Ausgaben von einem anderen Programm nutzt. Das soll dann so ähnlich sein wie bei dem Befehl dialog --gauge. Das Programm soll also reagieren, wenn das andere Programm eine neue Ausgabe macht. Das soll dann so aufgerufen werden:
programm | mein_programm

Ich hoffe, ich habe mich verständlich ausgedrückt.


Für eine Hilfe wäre ich dankbar.

Trillian
30-03-2002, 20:25
Falls du das in C machen willst, guck mal in den C Kurs von www.pronix.de - da steht dazu was (Pipes heissen die Dinger :D).

Nicolas
31-03-2002, 16:57
Das ist nicht ganz, was ich will. Dort steht nur, wie man in einem Programm mit einem anderen Programm komuniziert. Aber ich möchte die Daten von der Standardeingabe benutzen.

Ich hab jetzt schon ein Programm geschrieben, das das macht. Wenn ich das Programm mit "echo Hallo | ./a.out" aufrufe funktioniert es. Aber wenn ich es mit "echo Hallo && sleep 1 && echo Hallo | ./a.out" aufrufe, schreibt das Programm nur das erste Hallo in die Datei. und mit einer Endlosschleife wird das Hallo bis ich das Programm abbreche geschrieben. Das Programm muss also die Daten aus der Standardeingabe "fressen".

Hier ist der Quellcode:
#include <stdio.h>

int main() {
FILE *datei;
char puffer[255];

fgets(puffer,255,stdin);

datei = fopen("test", "w");
fprintf(datei,puffer);
}

Nicolas
31-03-2002, 18:11
Endlich funktioniert's

#include <stdio.h>

int main()
{
FILE *datei;
int c;

datei = fopen("test", "w");
while((c=getchar())!=EOF)
putc(c,datei);
return 0;
}

Außerdem war mein Aufruf falsch. Er hätte "{ echo Hallo && sleep 1 && echo Hallo; } | ./a.out" heißen müssen.