process.hpp
#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;
}
我预料到:停止主要,等待进程,继续主要。它不等待进程,waitpid返回-1,为什么?
答案 0 :(得分:1)
Waitpid仅适用于使用fork(),exec()启动的子进程。
在这种情况下,errno代码将在调用后为10,因为它是尝试在其他进程上使用waitpid,而不是子进程。
BTW这不能解决我的问题,但另一个问题是:Linux WaitForSingleObject?