процесс выполнения fork ()

Как именно работает fork ()?

Следующий код

#include <stdio.h>

int main (int argc, char const *argv[])
{
printf("Hi\n");
int i;
for(i = 1; i < argc; i++)
{
    printf("Argument %d is %s\n", i, argv[i]);
    fork();
    printf("Forked in for loop increment %d\n", i);
}


return 0;
}

дает следующий результат

/a.out hello world

Аргумент 1: hello

Разветвленный для приращения цикла 1

Аргумент 2 - это мир

Разветвленный для приращения цикла 2

Разветвленный для приращения цикла 1

Аргумент 2 - это мир

Разветвленный для приращения цикла 2

Разветвленный цикл для приращения 2

В общем, какой код fork выполняется первым. Я хотел бы знать принципы работы fork (), а не только на этом одном примере. Я мог бы иметь несколько аргументов для в командной строке.

6
задан jarryd 16 February 2011 в 00:20
поделиться