fork()循环,execlp()和wait()的问题

时间:2017-11-10 14:54:16

标签: while-loop fork exec wait

我对这段代码有疑问。循环应该从list.txt文件中读取文件名,然后最多n次(终端定义)并对包含整数的文件进行排序。问题是,父亲过程永远不会等待孩子终止。我错过了什么吗?

while(fscanf(fp, "%s", fname) != EOF){
    if(i<n){
        if(!fork()){
            i++;
            execlp("sort", "sort", "-n", "-o", fname, fname, NULL);
            exit(EXIT_SUCCESS);
        } 
    } else {
        printf("WAIT FOR FORK TERMINATION\n");
        wait(&status);
        i--;
    }
}

我不知道问题是否与execlp执行sort命令的速度有关,而不是父亲达到等待状态或什么

0 个答案:

没有答案