这里是我的代码的简化版本:派生进程似乎吃了某些代码行 - Objective-C的
- (IBAction)convert:(id)sender
{
/* these two lines are ignored */
[textbox setStringValue:@"converting"];
[convertButton setEnabled:NO];
pid_t pid;
if((pid=fork())==-1)
{
[log setStringValue:@"couldn't fork a new process."];
converting = 0;
[convertButton setEnabled:YES];
return;
}else if (pid==0)
{
//this is the child
sleep(2);
exit(0);
}else{
int status;
waitpid(pid,&status,0);
}
}
}
这是一个非常基本的fork()调用。问题在于,最上面的两条线(标有评论)被忽略......他们似乎并没有执行,直到分叉的孩子退出之后。为什么?
编辑:我能做些什么来解决它?
这就是它。对于任何有兴趣的人,我已发布回复我使用的代码。 – 2009-11-30 03:22:27