N
Nano
Foren As
Hallo zusammen,
nach dem das alte Problem gelöst ist....
Mein Childprozess sieht folgendermassen aus
und wird auch nicht beendet, vom fehlerfall abgesehen.
Mein Problem :
Ich würde im Vater gerne solange warten bis ich vom Kind Daten erhalten habe.
Also Vater sendet beispielswiese ls ans kind und wartet bis er die antwort auf ls hat,..
mein erster gedanke war wait() , das scheint allerdings nur zu funktionieren wenn das kind beendet wird, was hier nicht der fall ist.
die 2te idee wäre irgendwie zu testen ob auf der pipe die für den output zuständig ist ( in diesem fall ganz normaler stdout ) daten gesendet werden,
a) geht das ?
b) ist das der richtige ansatz oder gibt es da eine bessere methode ?
3 theoretische idee, den parent schlafen legen und auf ein signal vom kind warten, keine ahnung ob sowas machbar ist.
nach dem das alte Problem gelöst ist....
Mein Childprozess sieht folgendermassen aus
Code:
dup2(commpipe[0],0); //input = output des vaters
close(commpipe[1]);
if(execl("/bin/sh","sh",NULL) == -1)
{
fprintf(stderr,"execl Error!");
exit(1);
}
Mein Problem :
Ich würde im Vater gerne solange warten bis ich vom Kind Daten erhalten habe.
Also Vater sendet beispielswiese ls ans kind und wartet bis er die antwort auf ls hat,..
mein erster gedanke war wait() , das scheint allerdings nur zu funktionieren wenn das kind beendet wird, was hier nicht der fall ist.
die 2te idee wäre irgendwie zu testen ob auf der pipe die für den output zuständig ist ( in diesem fall ganz normaler stdout ) daten gesendet werden,
a) geht das ?
b) ist das der richtige ansatz oder gibt es da eine bessere methode ?
3 theoretische idee, den parent schlafen legen und auf ein signal vom kind warten, keine ahnung ob sowas machbar ist.
Zuletzt bearbeitet: