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