大家好我是新來的C很抱歉,如果我很迷路。我在嘗試創建這個多線程的Web服務器時遇到問題。我試圖...C - execvp()進程間通信
- 有一個線程創建一個新的線程
- 有一個新的線程中執行execvp()調用不同的C程序我的機器上
- 有新的線程返回流來自execvp()的數據
我在想使用pthreads來產生一個新的進程來運行execvp()並讓它通過管道返回數據。但是,這甚至是必要的嗎?不要pthreads共享內存?
此外,我可能想使用fork()而不是pthread,並讓孩子通過管道將數據發送回父級。
你能幫我指導一下正確的方向嗎?
啊謝謝。那麼execvp()如何正確工作。如果子進程調用execvp(),它將成爲execvp()調用的程序,或者它會產生另一個單獨運行execvp的線程,並等待execvp完成並加入。不知道這是否甚至有意義,或者如果在這種情況下甚至是重要的,我只是好奇 – user1367263 2013-03-01 08:27:14
當進程調用任何'exec'函數時,該進程本身就成爲被調用的程序。這就是爲什麼它很少從父進程調用。所以是的,這就像你描述的第一種情況(「如果孩子調用execvp()它會成爲execvp()調用的程序)」。 – aaaaaa123456789 2013-03-01 08:41:04
此外,您可以進入shell並輸入'man 3 exec'獲取更多信息。或者在這裏查看:http://www.linuxmanpages.com/man3/exec.3.php – aaaaaa123456789 2013-03-01 08:42:04