Muss ich mit einem SIGCHLD-Handler etwas unternehmen, wenn ich nur wait () verwende, um zu warten, bis 1 Kind gleichzeitig fertig ist?
Ich habe ein Programm, das einem Kind die Arbeit abverlangt, aber ich mache zu diesem Zeitpunkt immer nur ein Kind. ich benutzewait()
Um zu warten, bis das Kind fertig ist, muss ich irgendetwas damit anfangenSIGCHLD
als auch (wie den Handler deaktivieren)?
In meiner Situation bekomme ich einen Wert vonEINTR
imerrno
was mich denken lässt, dass ich maskieren mussSIGCHLD
.
In großen Zügen ist dies das Programm:
Argumente lesenfür (Liste der zu erledigenden Arbeiten)fork()
wenn kind,execlp()
zum ArbeitsprogrammWenn Eltern,wait()
damit das Kind fertig wirdWenn das untergeordnete Element fertig ist, springt das übergeordnete Element zum nächsten Arbeitselement