c - 使用 fork() 按顺序打印数组

标签 c fork

我正在尝试在 fork 的帮助下打印一个数组,其中每个元素都将由单独的子进程打印。

void printArray_fork(int *p_array, int length){
    int i;

    pid_t pid;
    for(i = 0; i<length;i++){
        /* Create children procs */
        pid = fork();
        if(pid==0){
            break;
        }
    }

    if(pid == 0) {
            printf( "My process ID : %d value: %d\n",getpid(),*(p_array + i));
    }
}

现在的问题是我希望它也按顺序排列(升序或降序,无关紧要)我该怎么做?

最佳答案

这里对您的代码进行一些修改以按顺序打印。

  /* Create children procs */
     pid = fork();
     wait();

如上所述,您所需要做的就是使用 wait 来创建下一个子进程。

关于c - 使用 fork() 按顺序打印数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28360035/

相关文章:

c - execvp 不适用于命令行参数

git - 这里有人 fork 吗?

c - 如何使用 getopt 检索一个选项的多个参数

编译器警告 : Initialization incompatible pointer type

c++ - 如何使用 QTextStream 而不是 QDataStream 从 QTableView 进行加载保存?

c - 循环重复 scanf 和 printf

c - printf 格式字符串 lint 警告

c - 无法从 Linux 中的设备驱动程序调用 Fork()

c - 在 C 中仅在父进程上 fork 多进程

c - 为什么我无法写入或读取管道?