49 lines
591 B
C
49 lines
591 B
C
int foo;
|
|
int foo1;
|
|
|
|
main(argc, argv)
|
|
char **argv;
|
|
{
|
|
int i, j;
|
|
|
|
for (i = 0; i < 10; i++) {
|
|
printf("main: bla %d pid %d\n", j = bla(), getpid());
|
|
if (j == 1)
|
|
exit(0);
|
|
}
|
|
}
|
|
|
|
bla()
|
|
{
|
|
int i;
|
|
|
|
foo = 0;
|
|
switch(fork()) {
|
|
case 0: /* child */
|
|
foo = 30;
|
|
for (i = 0; i < 10; i++) {
|
|
printf("child %d, foo %d\n", i, foo);
|
|
bar(foo);
|
|
foo++;
|
|
}
|
|
return(1);
|
|
|
|
case -1:
|
|
perror("fork");
|
|
return(2);
|
|
|
|
default:
|
|
for (i = 0; i < 10; i++) {
|
|
printf("parent %d foo %d\n", i, foo);
|
|
bar(foo);
|
|
foo++;
|
|
}
|
|
return(0);
|
|
}
|
|
}
|
|
|
|
bar(a)
|
|
{
|
|
printf("bar(%d) pid %d\n", a, getpid());
|
|
}
|