首页 > 代码库 > Linux Linux程序练习十四(多进程压力测试)
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程序练习十四(多进程压力测试)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。