PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lesen von anderen shell tools



barton4
08-12-2006, 18:27
Ich brauch in meinem programm eine funktion die eine zeichenkette aus der pipe heraus liest.
So dass z.B

bash: ls | meintool

die ausgabe von ls ausgiebt bzw weiterverabreitet....

hab bis her folgendes, erfolglos probiert:

int main()
{
int fd[2];
int size;
char buffer[1024];

if (pipe(fd)==0)
{
size=read(fd[0], buffer, 40);
printf("%s", buffer);
}
else
{
printf("error 1;");
}
}

Joghurt
08-12-2006, 21:04
Eine Pipe leitet stdout von der rechten Seite in den stdin der linken Seite...

In deinem Fall also einfach gets (oder besser fgets(stdin)) oder read(FILENO_STDIN, ....) nutzen.

(FILENO_STDIN ist glaube ich 0)