我已經嘗試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