使用fork objc

时间:2018-12-19 16:51:44

标签: ios objective-c fork jailbreak

在检测越狱设备时,如果派生过程失败,为什么大多数示例会终止应用程序?这是否意味着设备没有越狱,所以一切正常,没有任何子进程?

int pid = fork();
if (!pid){
    exit(0);
}
if (pid >= 0) {
    return YES;
}

1 个答案:

答案 0 :(得分:4)

PID为0并不意味着派生失败。这意味着派生成功,并且当前进程是子进程。 PID> 0表示派生成功,并且当前进程是父进程(返回值是子进程的PID)。 PID -1表示失败。

由于通常禁止应用进程分叉,因此预期结果为-1。如果允许fork,则有两个过程。父级返回YES,而子级终止,因为除了测试是否允许使用分叉之外,实际上不需要其他任何子项。