在检测越狱设备时,为什么大多数示例会在fork进程失败的情况下终止app?这不是意味着设备没有越狱,所以一切正常,没有任何子进程吗?
int pid = fork();
if (!pid){
exit(0);
}
if (pid >= 0) {
return YES;
}发布于 2018-12-20 01:00:58
PID为0并不意味着fork失败。这意味着fork成功了,当前进程就是子进程。PID >0表示fork成功,当前进程是父进程(返回值是子进程的PID)。PID -1表示它失败了。
由于应用程序进程通常被禁止forking,因此a -1是预期结果。如果允许fork,则有两个进程。父进程返回YES,子进程被终止,因为除了测试是否允许fork之外,实际上并不需要它。
https://stackoverflow.com/questions/53855789
复制相似问题