ECHILDECHILD — Keine Kindprozesse
Der aufrufende Prozess hat keine vorhandenen Kindprozesse, auf die gewartet werden kann.
Was verursacht diesen Fehler
Ein Aufruf von wait() oder waitpid() wurde durchgeführt, aber es sind keine Kindprozesse zum Abholen vorhanden. Dies kann auftreten, wenn SIGCHLD auf SIG_IGN gesetzt ist, wenn ein anderer Thread den Kindprozess bereits abgeholt hat oder wenn der Prozess nie fork() aufgerufen hat.
So beheben Sie ihn
Prüfen Sie, ob fork() erfolgreich aufgerufen wurde, bevor Sie wait() aufrufen. Vermeiden Sie mehrfache wait()-Aufrufe für denselben Kindprozess. Wenn Sie SIGCHLD-Handler verwenden, stellen Sie sicher, dass diese nicht mit expliziten wait()-Aufrufen in Konflikt stehen.
Verwandte Fehlercodes
SIGTSTP (20)SIGTSTP (20) — Terminal-Stop-Signal
Ein Stop-Signal vom Terminal, typischerweise durch Ctrl+Z. Im Gegensatz zu SIGSTOP kann dieses Signal abgefangen werden.
ENOTBLKENOTBLK — Blockgerät erforderlich
Es wurde ein Nicht-Blockgerät angegeben, wo ein Blockgerät erforderlich ist.
SIGTTIN (21)SIGTTIN (21) — Hintergrundprozess liest vom Terminal
Ein Hintergrundprozess hat versucht, von seinem steuernden Terminal zu lesen.
SIGTRAP (5)SIGTRAP (5) — Trace-/Breakpoint-Trap
Ein Breakpoint oder Trace-Trap wurde ausgelöst, typischerweise während des Debuggings.
ENOTRECOVERABLEENOTRECOVERABLE — Zustand nicht wiederherstellbar
Der Mutex-Zustand kann nicht wiederhergestellt werden, nachdem der vorherige Eigentümer ohne Entsperren beendet wurde.
EBADFEBADF — Ungültiger Dateideskriptor
Ein Dateideskriptor-Argument ist kein gültiger offener Dateideskriptor oder ist nicht für die angeforderte Operation geöffnet.