これが私のコードの簡略版です:
- (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() 呼び出しです。問題は、最上部の 2 行 (コメントでマークされている) が無視されることです...フォークされた子が終了するまで実行されないようです。なんで?
編集:それを修正するにはどうすればよいですか?