Ich versuche herauszufinden, was die PID eines Prozesses ist, der das SIGCHLD-Signal gesendet hat, und ich möchte dies in einem Signalhandler tun, den ich für SIGCHLD erstellt habe. Wie würde ich das tun? Ich versuche:Ermitteln PID des beendeten Prozesses
int pid = waitpid(-1, NULL, WNOHANG);
, weil ich auf jeden Kindprozess warten möchte, der hervorgebracht wird.
Ihr Ansatz ist richtig, es sollte funktionieren. Was ist deine Frage? – qrdl
Wie bekomme ich die PID des Prozesses, der SIGCHLD gesendet hat? – Hristo
'waitpid()' gibt die PID des terminierten Kinds zurück, wenn Sie es von Ihrem Signalhandler aus aufrufen. – qrdl