使用 fork 对象
Using fork objc
检测越狱设备时,为什么大多数例子在fork进程失败时终止应用程序?这是否意味着设备没有越狱,所以一切正常,没有任何子进程?
int pid = fork();
if (!pid){
exit(0);
}
if (pid >= 0) {
return YES;
}
PID 为 0 并不意味着分叉失败。表示fork成功,当前进程为child。 PID > 0表示fork成功,当前进程为parent(返回值为child的PID)。 PID -1 表示它失败了。
由于通常禁止应用程序进程分叉,因此 -1 是预期结果。如果允许fork
,则有两个进程。 parent returns 是,并且 child 被终止,因为除了测试是否允许分叉之外,实际上不需要它。
检测越狱设备时,为什么大多数例子在fork进程失败时终止应用程序?这是否意味着设备没有越狱,所以一切正常,没有任何子进程?
int pid = fork();
if (!pid){
exit(0);
}
if (pid >= 0) {
return YES;
}
PID 为 0 并不意味着分叉失败。表示fork成功,当前进程为child。 PID > 0表示fork成功,当前进程为parent(返回值为child的PID)。 PID -1 表示它失败了。
由于通常禁止应用程序进程分叉,因此 -1 是预期结果。如果允许fork
,则有两个进程。 parent returns 是,并且 child 被终止,因为除了测试是否允许分叉之外,实际上不需要它。