本文介绍了了vfork()的atexit断言失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想明白下面这段code的
#包括LT&;&stdio.h中GT;
#包括LT&;&unistd.h中GT;
#包括LT&; SYS / types.h中>诠释的main()
{
将为pid_t PID;
unsigned int类型I = 0;
PID =的vfork();
开关(PID)
{
案例-1://某种错误
看跌期权(叉错误);
打破;
案件0://子进程
而(ⅰ&小于100)
{
的printf(%d个\\ N,I);
我++;
}
打破;
默认://父
而(ⅰ&下; 1000)
{
的printf(%d个\\ N,I);
我++;
}
打破;
}
// _exit(0);
}
和请不要告诉我说了vfork()是坏的,这类事情。我知道它是,但什么是在这个code是导致这种错误发生的准确。
在此先感谢
解决方案
目前还不清楚是什么你正在尝试做或理解,但这里是从的:
You are doing both 1: i++
and 3 printf("%d\n", i)
. Whatever you expect, it won't work.
As a side note, vfork
isn't bad. Just tricky, dangerous, almost useless and removed from SUSv4.
这篇关于了vfork()的atexit断言失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!