daemon 函式守護程序函式介紹

2021-10-07 03:58:00 字數 879 閱讀 7307

標頭檔案與函式原型

#include

int daemon(int nochdir,int noclose)

建立守護程序前提條件

將程序的工作目錄修改為"/"根目錄。daemon的引數nochdir為0時,即可將工作目錄修改為根目錄;

將標準輸入,輸出和錯誤輸出重定向到/dev/null daemon的引數noclose為0時,輸入,輸出以及錯誤輸出重定向到/dev/null 。

返回值:成功返回0 錯誤返回1

deamon()函式解析

#include int main(int argc,char *ar**)

子程序內容

}int daemon( int nochdir, int noclose )

//如果替換成功,那麼鍵盤的任何操作將不會對該程序產生任何影響,因為0,1,2控制代碼所在處的fops檔案操作集已經都變成了,

//被重定向為"/dev/null"空洞裝置的fops.所以對0,1,2控制代碼的讀寫操作,也就是在對/dev/null裝置作讀寫操作.

close(fd); //關閉開啟的/dev/null

} pid = fork();//建立子程序.

if (pid < 0)

return -1;

if (pid > 0)

_exit(0); //返回執行的是父程序,那麼父程序退出,讓子程序變成真正的孤兒程序.

//ok,我們期望的daemon子程序執行到這裡了.

if ( setsid() < 0 ) //設定session id.

return -1;

return 0; //成功建立daemon子程序[luther.gliethttp].

}

daemon守護程序

daemon守護程序 守護程序是乙個後台程序,不能夠控制終端,所以任何輸出,無論是向標準出錯裝置stderr還是向標準輸出裝置stdout的輸出都需做特別處理。守護程序一般在系統啟動時啟動,它的父程序是init程序。建立守護程序 1在父程序執行fork然後讓父程序退出。2在子程序中使用setsid呼...

守護程序 daemon

守護程序常常在系統引導裝入時啟動,在系統關閉時終止。一般說daemon程式在後台執行,是因為它沒有控制終端,無法和前台的使用者互動。daemon程式一般都作為服務程式使用,等待客戶端程式與它通訊。我們也把執行的daemon程式稱作守護程序。乙個守護程序的父程序是init程序,因為它真正的父程序在fo...

守護程序(Daemon)

守護程序 daemon 一般是為了保護我們的程式 服務的正常執行,當程式被關閉 異常退出等時再次啟動程式 恢復服務。例如 http 服務的守護程序叫 httpd,mysql 服務的守護程序叫 mysqld。或者有時候我們需要讓我們的程式 服務能不中斷地執行,在關閉終端後也能在後台默默執行,除了可以這...