- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我的代码的简化版本:
- (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() 调用。问题是,最顶部的两行(标有注释)被忽略了……它们似乎直到 after forked child 退出才执行。为什么?
编辑:我该怎么做才能修复它?
最佳答案
您真的真的 真的不想在 Cocoa 应用程序中调用 fork()
。这样做时大约有无数个不同的陷阱,主要与各种资源(如 mach 端口和其他系统绑定(bind)基础设施)如何在 fork()
边界上生存有关。线程也会导致各种麻烦。
改用NSTask
。虽然它在内部有效地执行 fork()
/exec()
,但它会非常小心地确保正确完成。
关于c - fork 一个进程似乎吃掉了某些代码行 - Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1817351/
长期以来,我一直在寻找解决我的问题的方法,这就是我求助于您的原因: 考虑这段代码: static char done = 0; static void sigHandler(void) { d
我现在的职业是信息架构师和 JavaScript 开发人员,但最近我又回到了后端编码领域。而且,在尝试集成 HTML 原型(prototype)并与我们基于 C# 的 CMS 一起工作时,我与我们的程
我为 Jersey 创建了一个 LoggingFilter,并在 web.xml 中正确配置了它。一切正常。当我执行“GET”时,我得到 userPrincipal (request.getUserP
我没问题 Xcode 8.3.2 和 SourceKitService 正在使用我所有的 CPU。我在stackoverflow上阅读了很多问题,但找不到真正的解决方案。 我试过的: 清理项目数据:c
我是一名优秀的程序员,十分优秀!