多程序程式設計
今天覆習了多程序程式設計,共涉及只是大致有程序的建立於結束,退出,終止,等待,休眠,獲取程序號,執行外部的應用程式等的函式使用,還了了解程序與執行緒的區別於相同之處,在此對於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環境下乙個程序在記憶體中有三部分資料 資料段 堆疊段和 段 段 就是存放程式 的資料,如果有數個程序執行乙個程式,那麼他們就可以使用同乙個 段 堆疊段 存放的是子程式的返回位址 引數以及程式的區域性變數 資料段 存放程式的全域性變數 常數以及動態資料分配的資料空...