天天看點

linux網絡程式設計-----實作并發通路網站------

    一般在測試多并發伺服器的時候需要使用多路程序通路,這時需要自己來編寫測試的并發通路功能.

    直接上代碼:

<code>#include &lt;stdio.h&gt;</code>

<code>#include &lt;stdlib.h&gt;</code>

<code>#include &lt;unistd.h&gt;</code>

<code>#include &lt;signal.h&gt;</code>

<code>#include &lt;sys/wait.h&gt;</code>

<code>//</code><code>回收子程序</code>

<code>void wait_child(int num){</code>

<code>    </code><code>while</code><code>(0 &lt; 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,如需轉載請自行聯系原作者

繼續閱讀