在父程序中通過fork()函式可以建立子程序,如果返回值==0,為子程序;否則是為父程序。子程序得到的除了**段是與父程序共享以外,其他所有的都是父程序的乙個副本,子程序的所有資源都繼承父程序,得到父程序資源的副本,但是二者並不共享位址空間。兩個是單獨的程序,繼承了以後二者就沒有什麼關聯,子程序單獨執行。採用寫時複製技術。
關於檔案描述符:繼承父程序的檔案描述符時,相當於呼叫了dup函式,父子程序共享檔案表項,即共同操作同乙個檔案,乙個程序修改了檔案,另乙個程序也知道此檔案被修改。
父程序通過wait()和waitpid()函式可以監控子程序。
守護程序建立及詳解、deamon 、 systemd 、自定義開機自啟動
#include #includeusing
namespace
std;
void
func()
}int main() //
主線程#include
#include
using
namespace
std;
void
func()
}int main() //
主線程
#include #includeusing
namespace
std;
void
func()
}int main() //
主線程
detach()函式
稱為分離執行緒函式,使用detach()函式會讓執行緒在後台執行,即說明主線程不會等待子執行緒執行結束才結束
通常稱分離執行緒為守護執行緒(daemon threads),unix中守護執行緒是指,沒有任何顯式的使用者介面,並在後台執行的執行緒。這種執行緒的特點就是長時間執行;執行緒的生命週期可能會從某乙個應用起始到結束,可能會在後台監視檔案系統,還有可能對快取進行清理,亦或對資料結構進行優化。另一方面,分離執行緒的另一方面只能確定執行緒什麼時候結束,發後即忘(fire andforget)的任務就使用到執行緒的這種方式。
#include #includeusing
namespace
std;
void
func()
}int main() //
主線程
資料:join和detach
守護程序
父程序,子程序,執行緒之間的關係
1 父子程序之間的關係 關於資源 子程序得到的是除了 段是與父程序共享的意外,其他所有的都是得到父程序的乙個副本,子程序的所有資源都繼承父程序,得到父程序資源的副本,既然為副本,也就是說,二者並不共享位址空間。兩個是單獨的程序,繼承了以後二者就沒有什麼關聯了,子程序單獨執行。採用寫時複製技術 關於檔...
父程序,子程序,執行緒之間的關係
1 父子程序之間的關係 子程序得到的除了 段是與父程序共享以外,其他所有的都是得到父程序的乙個副本,子程序的所有資源都繼承父程序,得到父程序資源的副本,二者並不共享位址空間。兩個是單獨的程序,繼承了以後二者就沒有什麼關聯了,子程序單獨執行。採用寫時複製技術 關於檔案描述符 繼承父程序的檔案描述符時,...
Linux 程序 父程序 子程序
程序和程式的區別 一 程序是動態的,程式是靜態的 程式是有序 的集合,程序是程式的執行。程序有核心態 使用者態。二 程序是暫時的,程式是永久的 程序是乙個狀態變化的過程,程式可以長久儲存 三 程序和程式的組成不同,程序的組成包括程式 資料和程序控制塊 即程序狀態資訊 什麼是程序識別符號什麼是父程序和...