一般在测试多并发服务器的时候需要使用多路进程访问,这时需要自己来编写测试的并发访问功能.
直接上代码:
<code>#include <stdio.h></code>
<code>#include <stdlib.h></code>
<code>#include <unistd.h></code>
<code>#include <signal.h></code>
<code>#include <sys/wait.h></code>
<code>//</code><code>回收子进程</code>
<code>void wait_child(int num){</code>
<code> </code><code>while</code><code>(0 < waitpid(0, NULL, WNOHANG)){</code>
<code> </code><code>;</code>
<code> </code><code>}</code>
<code>}</code>
<code>int main(int argc, char* argv[]){</code>
<code> </code><code>pid_t pid;</code>
<code> </code><code>//</code><code>注册子进程结束信号</code>
<code> </code><code>signal(SIGCHLD, wait_child); </code>
<code> </code>
<code> </code><code>//</code><code>循环创建进程</code>
<code> </code><code>for</code><code>(;;){</code>
<code> </code><code>//</code><code>创建进程</code>
<code> </code><code>pid = fork();</code>
<code> </code><code>if</code><code>(0 == pid){</code>
<code> </code><code>//</code><code>调用curl 访问网站 argv[1] 用户命令行参数</code>
<code> </code><code>execlp(</code><code>"curl"</code><code>, </code><code>"curl"</code><code>, </code><code>"-I"</code><code>, argv[1], NULL);</code>
<code> </code><code>}</code>
<code> </code><code>usleep(20); </code><code>//</code><code>暂停20毫秒</code>
<code></code>
本文转自asd1123509133 51CTO博客,原文链接:http://blog.51cto.com/lisea/1791523,如需转载请自行联系原作者