【发布时间】:2013-08-31 10:32:04
【问题描述】:
我编辑了一点:
for ( ii = 0; ii < nbEnfants; ++ii) {
switch (fork()){
case -1 : {
printf("\n\nSoucis avec fork() !!! \n\n");
exit(0);
};
case 0 : {
EEcrireMp(ii);
}break;
default : {
tabPidEnfants[ii] = p;
usleep(50000);
ELireMp(nbSect, nbEnfants,tabPidEnfants);
};
}
}
我的问题:我得到了很多孩子,就像一个产卵的孩子的炸弹。我怎样才能阻止那些孩子?休息不应该停止吗?
谢谢
【问题讨论】:
-
如果从
EEcrireMp(ii);返回,您希望孩子做什么?顺便说一句:你的“印象”是正确的。 -
EEcrireMp(ii) :它写入 shared_memory 然后我在 sem_value 中使用标志 +1:IPC_NOWAIT;但我不做 exit() 因为孩子需要仍在运行,直到父母 Read 由 ELireMP() 完成,然后
-
对不起,但我想问“您希望孩子从调用 EEcrireMp() 后做什么”; “...仍在运行...”在做什么什么?
-
当“EEcrireMp()”完成时,我只希望父母做第二个孩子,而这个孩子做的事情与第一个孩子做的事情一样,直到第 20 个孩子。 20 日之后,我希望 ELireMP 中的功能完成 :)
-
你还是没有告诉我们孩子们从
EEcrireMp()回来后应该做什么。从这一事实中,人们可能会认为他们应该什么都不做。那么为什么不让他们exit()呢?