一般在測試多并發伺服器的時候需要使用多路程序通路,這時需要自己來編寫測試的并發通路功能.
直接上代碼:
<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,如需轉載請自行聯系原作者