N
Nano
Foren As
Hallo zusammen, ich schreibe in c ein programm das eine shell als kind hat dieser befehle über pipes sendet, die shell sie ausführt und per pipe daten zurückgibt ich hab nun folgendes problem bei dem ganzen, mein vaterprozess der die daten an die shell gibt und von ihr empfängt wird per select so lange schlafen geschickt bis auf der von der shell ausgenden pipe ( stdout ) daten kommen, das funktioniert bei allen befehlen mit rückgabe wie z.b ls , cat etc ohne problem, allerdings weiss ich woran ich sehe ob z.b. ein befehl wie mkdir "fertig" ist da er ja im erfolgsfall keine rückgabe liefert und so meine pipe auch keine daten bekommt folglich der prozess weiter schläft.
Es handelt sich zwar um ein C programm denke aber das diese frage eher hier rein passt.
Nochmal um es etwas vereinfacht darzustellen
Prozess 1 schickt über pipes einen befehl an Prozess 2 ( hier läuft eine Shell )
Prozess 1 geht schlafen bis Daten von P2 kommen ( per select gelöst )
Prozess 2 arbeitet befehl ab, daten von stdout werden über die pipe an P1 gesendet
Problem : P2 erhält befehl der keine rückgabe über stdout liefert.
Wie z.b chmod oder mkdir etc...
Wie kann ich abfragen ob das geschehen ist ?
Es handelt sich zwar um ein C programm denke aber das diese frage eher hier rein passt.
Nochmal um es etwas vereinfacht darzustellen
Prozess 1 schickt über pipes einen befehl an Prozess 2 ( hier läuft eine Shell )
Prozess 1 geht schlafen bis Daten von P2 kommen ( per select gelöst )
Prozess 2 arbeitet befehl ab, daten von stdout werden über die pipe an P1 gesendet
Problem : P2 erhält befehl der keine rückgabe über stdout liefert.
Wie z.b chmod oder mkdir etc...
Wie kann ich abfragen ob das geschehen ist ?