c - 尝试创建两个使用计数器打印其进程 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
解决方案
推荐阅读
- lme4 - glmer 中的交互(统计建议)
- nginx - 当位置 URI 不是 root 时,nginx proxypass 失败“GET”请求
- windows - git CMD 找到 .gitconfig 但 Windows cmd 没有?
- docker-swarm - Traefik 无法路由到具有已发布端口的容器
- python - 当路径中有“\v”时打开文件
- sql - SQL Faster 检查表中有限数量的 id
- oracle-apex-18.2 - 无法删除全局页面
- php - 无法在 PHP 中使用 curl 从 API 获取 json 响应
- c# - C# 连接字符串到 MS Teams 上的 MS 访问文件
- php - 试图获取非对象错误的属性 - Laravel