linux多程序c程式設計

2021-07-16 23:47:36 字數 904 閱讀 6092

多程序程式設計

今天覆習了多程序程式設計,共涉及只是大致有程序的建立於結束,退出,終止,等待,休眠,獲取程序號,執行外部的應用程式等的函式使用,還了了解程序與執行緒的區別於相同之處,在此對於pid,ppid,pigid,puid等獲取方式與相關表示就不在陳述,建立程序的兩個主要函式vfork與fork,其區別在於,fork完全複製父程序的**和資料段等,而vfork是共享,有些和執行緒雷類似,因為在vfork建立的程序中改變相應的資料,在父程序中則也會改變,fork則沒有。fork的與父程序可以說完全是兩個程式。除非使用其他手段通訊,執行外部應用程式函式有,execl(),execle(),execlp().等,下面還有三個,具體不在一一闡述,檢視各自的輸入引數即可。好了不多說,直接上**,歡迎指出步不足之處。

#include #include //包含了程序等待終止等相關函式,及檔案炒作相關函式

#include //包含了建立相應的穿件

#include #include #include int glob1=1;

int main(int argc ,char *argv)

else if(pid==0)

else

else if(vpid==0)

else

}printf("執行完畢程序號%d\n",getpid());

exit(0);

//wait(0);

}

結果與想象一樣,特別有一點需要注意那就是程序之間的執行速度,據我觀察父程序最快,當然,我們可以用wait,waitpid,sleep等函式控制順序即可,

對了還有一點就是多程序gdb除錯也是有方法的,還有程序優先順序的處理與排程等,可惜時間不等人,馬上要找工作了不允許我在這一領域深入。

linux多程序程式設計

在linux中,執行的乙個程序,會占去linux的三個地方,區,堆疊區和資料區.如果同時執行多個相同的程式,他們就會使用相同的 區,區中存放的就程式的 但是資料區和堆疊區分別存放的是程式的資料,全域性變數和區域性變數,因此即使是相同的程式,也不可同時使用相同的資料和堆疊區.include inclu...

c 多程序程式設計

執行緒的優點 1 建立乙個新執行緒的代價要比建立乙個新程序小得多 2 與程序之間的切換相比,執行緒之間的切換需要作業系統做的工作要少很多 3 執行緒占用的資源要比程序少很多 4 能充分利用多處理器的可並行數量 5 在等待慢速i o操作結束的同時,程式可執行其他的計算任務 6 計算密集型應用,為了能在...

linux 多程序程式設計基礎

一 linux下程序的理解 linux環境下乙個程序在記憶體中有三部分資料 資料段 堆疊段和 段 段 就是存放程式 的資料,如果有數個程序執行乙個程式,那麼他們就可以使用同乙個 段 堆疊段 存放的是子程式的返回位址 引數以及程式的區域性變數 資料段 存放程式的全域性變數 常數以及動態資料分配的資料空...