process.hppWaitpid Rückkehr -1, warum?
#define HPROCESS int
class Process {
private:
int exitCode;
HPROCESS hProcess;
public:
static void waitEnd(Process* proc) {
int w = waitpid(proc->hProcess, &(proc->exitCode), 0);
Debug::debug(w);
}
};
main.cpp
int main() {
Process* process = NULL;
while(!process) {
cout<<endl<<"Waiting for second process.\nPress any key";
getchar();
getchar();
process = Process::takeExisting("process");
}
Process::waitEnd(process);
cout<<endl<<"second process ended";
cout<<endl<<endl;
return 0;
}
ich erwartet hatte: stop Haupt, für Prozess warten, weiter Haupt. Es wartet nicht auf den Prozess, waitpid gibt -1 zurück, warum?
Sie sollten explizit sowieso auf Fehler überprüft werden. Bist du sicher, dass 'waitpid()' nicht -1 zurückgibt? Außerdem wird Ihre Funktion nicht das tun, was Sie erwarten: Prozess wird * durch Wert *, nicht * durch Verweis * übergeben, so dass die Änderungen an 'exitCode' nichts bewirken. – andlabs
@andlabs Ich habe den Code korrigiert und nach -1 gesucht, du hattest Recht. – Nikita
Dieser Code wird nicht einmal kompiliert. – melpomene