在工作中经常碰到需要写一些多进程/多线程的测试程序,用来测试接口的性能。本文将会从零开始一点点增加代码,最终完成一个简易的多进程测试程序编写。该程序支持实时打印测试进结果和最终测试结果的统计。
同时,本文还涵盖了以下知识点,可以作为学习参考:
- 使用
getopt_long()处理命令行选项和参数 - 使用
fork()和wait()处理多进程 - 使用
sigaction()配合alarm()处理定时信号SIGALRM - 使用
shmget()、shmat()、shmdt()、shmctl()等通过共享内存进行进程间通信 - 使用
sigaction()捕获SIGINT和SIGQUIT信号,在程序终止前做共享内存清理工作