本文介绍了了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断言失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 00:32