我已经尝试fork()和vfork(),并获得一个浮点pt与fork和seg错误与vfork。因为没有明显的理由,当我使用vfork()它退出孩子,但没有进入父母,然后seg故障。当我使用fork()它进入父级,但给我一个浮动pt excep。有任何想法吗?基本fork()程序返回seg故障或浮动pt异常
#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int sum = 0;
int i = 0;
pid_t pID;
int main()
{
pID = vfork();
if (pID > 0)
{
std::cout<< "b4 NULL"<< i<< "__"<< sum << std::endl;
wait(NULL);
std::cout<< "after NULL"<< i<< "__"<< sum << std::endl;
int avg = sum/i;
std::cout<<avg;
}
else if (pID == 0)
{
int J = 0;
std::cout<<sum<<"__"<<i<<std::endl;
i=0;
sum=0;
std::cout<<"enter a num:";
std::cin>>J;
while(J != -1)
{
sum += J;
std::cout<<"enter a num:";
std::cin>>J;
i++;
}
//int avg = sum/i;
//std::cout<<avg;
std::cout<<"exit child"<< i << "__" << sum << "__" << sum/i << std::endl;
//return(sum);
}
else
{
std::cerr << "Failed to fork" << std::endl;
return 1;
}
return 0;
}
您显示的代码是我父母的功能。它只能修改(总和)并显示平均值。孩子是(pID == 0)。 – user2782246 2014-09-26 05:19:52
@ user2782246对。你认为这会改变什么吗? – 2014-09-26 15:04:11
我只是不确定,因为你提到我的孩子的过程,但显示父母。 – user2782246 2014-09-29 22:27:33