多进程测试
任务详情
推荐在OpenEuler中实现 1. 编写程序 rxx(xx为你学号后两位), rxx -o 生成并打印一个奇数随机数,rxx -e 生成并打印一个偶数随机数。提交代码和运行结果截图。 2. 编写一个多进程程序,父进程通过调用exec和rxx 打印奇数随机数,同时打印自己PID,子进程通过调用exec和rxx 打印奇数随机数,同时打印PPID和PID,提交代码和运行结果截图。
代码如下:
#include <stdlib.h> #include <time.h> #include <stdio.h> #include <string.h> int main(int argc,char *argv[]) { char *o = "-o"; char *e = "-e"; int a; printf("\n"); //随机种子 srand((unsigned int)time(NULL)); for(int i = 0;i < 10 ;i ++) { if(strcmp(argv[1], o)==0) { a=rand()%101; if(a%2!=0) { printf("jishu is %d\n",a); break; } //printf("%d ",rand()%101);//生成0~100之间 } else if(strcmp(argv[1], e)==0) { a=rand()%101; if(a%2==0) { printf("oushu is %d\n",a); break; } //printf("%d ",rand()%101);//生成0~100之间 } else{ printf("none!"); } //printf("%d ",rand()%101 - 50);//生成-50~50之间 } printf("\n"); return 0; }
运行截图:
代码如下:
#include <stdlib.h> #include <time.h> #include <stdio.h> #include <string.h> #include <unistd.h> int main(int argc, char *argv[]) { char *o = "-o"; char *e = "-e"; int a; int fork_rv; printf("\n"); //随机种子 srand((unsigned int)time(NULL)); printf("Before: my pid is %d\n", getpid()); fork_rv = fork(); for (int i = 0; i < 10; i++) { if (fork_rv == 0) { if (strcmp(argv[1], o) == 0) { a = rand() % 101; if (a % 2 != 0) { printf("I am the child. my pid=%d\n", getpid()); printf("jishu is %d\n", a); break; } } else { printf("child none!"); exit(0); } // printf("%d ",rand()%101);//生成0~100之间 } else if (fork_rv != 0 && fork_rv != -1) { if (strcmp(argv[1], e) == 0) { a = rand() % 101; if (a % 2 == 0) { printf("I am the parents. my pid=%d\n", getpid()); printf("oushu is %d\n", a); break; } // printf("%d ",rand()%101);//生成0~100之间 } else { printf("parents none!"); exit(0); } // printf("%d ",rand()%101 - 50);//生成-50~50之间 } else{ perror("fork"); } /* check for error */ } printf("\n"); return 0; }
运行结果如图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)