首页 > 解决方案 > 尝试创建两个使用计数器打印其进程 ID 的子进程和一个循环以递增计数器

问题描述

我的代码目前可以工作,但计数器和循环还不能工作。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

// Driver code

int main()
{
int pid, pid1, pid2;
//int counter = 0;
for (int counter = 1; counter <= 10; ){

        printf("\n");
        printf("parent %d process: counter=%d\n", getpid(), counter);

        pid = fork();
        if (pid == 0) {
            //sleep(1);
            printf("child %d process: counter=%d\n", getpid(), counter);
        counter++;
        }
        else {
            pid = fork();
      if (pid == 0) {
                    printf("child %d process: counter=%d\n", getpid(), counter);
                }
    }
return 0;
}

预期输出类似于:父 1000 进程:计数器 = 1

子 1001 进程:计数器 = 1

子 10002 进程:计数器 = 1

父 1000 进程:counter=2

子 1001 进程:计数器 = 2

子 1002 进程:计数器 = 2

所以我试图让它循环,计数器每次递增,直到一定次数

当它运行输出的代码是:父37650进程:计数器= 1

子 37651 进程:计数器 = 1

子 37652 进程:计数器 = 1

标签: cloops

解决方案


推荐阅读