mithras
22-08-2002, 14:15
ich leite die standardausgabe vom bildschirm mit einem pipe um. Nun will ich diese ausgabe in einen array speichern bzw. einlesen. Danach soll der Array wieder augegeben werden.
Habe schon etliche Versuche gemacht, aber entweder wurde nur eine zeile ausgegeben oder es gab Speicherzugriffsfehler!?
so, so wie unten beschrieben funktioniert alles perfekt. Das Prob ist aber nur, dass der array in den ich die daten speicher in der while schleife gleich wieder ausgegebn werden muss. wenn ich nun den array außerhalb der schleige positionier (das muss ich, da ich meinem programm den array mit dem gespeicherten daten an einen anderen prozess übergeben muss) dann wird nur eine zeile ausgeben!
int main(void)
{
char puffer[1000];
FILE *pipe_read;
pipe_read = popen("ls", "r");
while (fgets(puffer, 900, pipe_read) != NULL)
ausgeben(puffer);
return 0;
}
int ausgeben(char *puffer)
{
printf( "%s\n",puffer);
return 0;
}
Habe schon etliche Versuche gemacht, aber entweder wurde nur eine zeile ausgegeben oder es gab Speicherzugriffsfehler!?
so, so wie unten beschrieben funktioniert alles perfekt. Das Prob ist aber nur, dass der array in den ich die daten speicher in der while schleife gleich wieder ausgegebn werden muss. wenn ich nun den array außerhalb der schleige positionier (das muss ich, da ich meinem programm den array mit dem gespeicherten daten an einen anderen prozess übergeben muss) dann wird nur eine zeile ausgeben!
int main(void)
{
char puffer[1000];
FILE *pipe_read;
pipe_read = popen("ls", "r");
while (fgets(puffer, 900, pipe_read) != NULL)
ausgeben(puffer);
return 0;
}
int ausgeben(char *puffer)
{
printf( "%s\n",puffer);
return 0;
}