вилка ()in for ()цикл

Я пытаюсь сделать домашнее задание, где я должен использовать fork(), но я не знаю, почему я не могу остановить свои вилки после того, как прогоню их через мой for loop:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>

int main(int argc, char *argv[]){
    int limit = argc/2;
    if(argc%2 == 0){

            perror("the number of arguments given must pe even!");
            exit(1);
    }

    int i;
    for(i=0; i<=limit; i++){
        if(fork()==-1){
            perror("childes couldn't be created\n");
            exit(1);
        }
        if(fork()==0){
            printf("fork: %d \n",i);
            exit(1);
        }
        wait(0);
    }


    printf("exiting...\n");
    return 0;
}

Output:

warzaru@ubuntu:~/OS/UprocH$./exe a b c d
fork: 0 
fork: 0 
fork: 1 
fork: 1 
fork: 1 
fork: 2 
fork: 2 
fork: 1 
fork: 2 
exiting...
exiting...
fork: 2 
exiting...
exiting...
fork: 2 
exiting...
exiting...
exiting...
warzaru@ubuntu:~/OS/UprocH$ fork: 2 
fork: 2 
fork: 2 
exiting...
6
задан Timmy O'Mahony 25 September 2012 в 22:02
поделиться