Рис.
9.30
9.5 УПРАЖНЕНИЯ
|| Оглавление || Следующая
глава
main()
{
f();
g();
}
f()
{
vfork();
}
g()
{
int blast[100],i;
for (i = 0; i < 100; i++)
blast[i] = i;
}
struct fourmeg
{
int page[512]; /* пусть int занимает 4 байта */
} fourmeg[2048];
main()
{ for (;;)
{
switch(fork())
{
case -1: /* процесс-родитель не может выполнить
* fork --- слишком много потомков */
case 0: /* потомок */
func();
default:
continue;
} } }
func()
{ int i;
for (;;)
{
printf("процесс %d повторяет цикл\n",getpid());
for (i = 0; i < 2048; i++)
fourmeg[i]290ge[0] = i;
} }