Linux Linux程序练习十四(多进程压力测试)
Posted 庖丁解牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Linux程序练习十四(多进程压力测试)相关的知识,希望对你有一定的参考价值。
/* * 题目: * 编程一个基本多进程测试框架,提示用户输入进程数、和每个进程数运行圈数。(fork) * 进行多进程压力测试。(execve) * 要求父进程能监控所有子进程的退出,避免僵尸进程。(wait) * */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <sys/types.h> #include <sys/wait.h> int main(int arg, char *args[]) { if (arg < 2) { printf("please print pid num !\\n"); return -1; } int pidnum = atoi(args[1]); int pid = 0; while (pidnum--) { pid = fork(); if (pid < 0) { printf("fork() failed !\\n"); break; } if (pid == 0) { //执行测试程序 execl("./runc", "./runc", NULL); } } int status = 0, ret = 0; while (1) { ret = wait(&status); printf("子进程pid=%d\\n", ret); if (ret == -1) { //屏蔽其他信号 if (errno == EINTR) { continue; } break; } } printf("game is over !\\n"); return 0; }
以上是关于Linux Linux程序练习十四(多进程压力测试)的主要内容,如果未能解决你的问题,请参考以下文章