歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

Linux下的多進程編程


(一) 理解Linux下進程的結構

  Linux下一個進程在內存裡有三部份的數據,就是“數據段”,“堆棧段”和“代碼段”,其實學過匯編語言的人一定知道,一般的CPU象I386,都有上述三種段寄存器,以方便操作系統的運行。“代碼段”,顧名思義,就是存放了程序代碼的數據,假如機器中有數個進程運行相同的一個程序,那麼它們就可以使用同一個代碼段。

  堆棧段存放的就是子程序的返回地址、子程序的參數以及程序的局部變量。而數據段則存放程序的全局變量,常數以及動態數據分配的數據空間(比如用malloc之類的函數取得的空間)。這其中有許多細節問題,這裡限於篇幅就不多介紹了。系統如果同時運行數個相同的程序,它們之間就不能使用同一個堆棧段和數據段。

(二) 如何使用fork

  在Linux下產生新的進程的系統調用就是fork函數,這個函數名是英文中“分叉”的意思。為什麼取這個名字呢?因為一個進程在運行中,如果使用了fork,就產生了另一個進程,於是進程就“分叉”了,所以這個名字取得很形象。下面就看看如何具體使用fork,這段程序演示了使用fork的基本框架:

void main(){
int i;
if ( fork() == 0 ) {
/* 子進程程序 */
for ( i = 1; i

Copyright © Linux教程網 All Rights Reserved