Daemon函數的用法

來源:互聯網
上載者:User

 

Daemon函數的用法

說明:

讓一個程式後台運行。

原型:

#include <unistd.h></p><p>int daemon(int nochdir, int noclose);<br />

參數:

當 nochdir為零時,目前的目錄變為根目錄,否則不變;

當 noclose為零時,標準輸入、標準輸出和錯誤輸出重導向為/dev/null,也就是不輸出任何信 息,否則照樣輸出。

傳回值:

deamon()調用了fork(),如果fork成功,那麼父進程就調用_exit(2)退出,所以看到的錯誤資訊 全部是子進程產生的。如果成功函數返回0,否則返回-1並設定errno。

樣本:

#include <stdio.h><br />#include <stdlib.h><br />#include <unistd.h><br />#include <fcntl.h><br />#include <limits.h></p><p>int main(int argc, char *argv[])<br />{<br />char strCurPath[PATH_MAX];</p><p>if(daemon(1, 1) < 0)<br />{<br />perror("error daemon.../n");<br />exit(1);<br />}<br />sleep(10);</p><p>if(getcwd(strCurPath, PATH_MAX) == NULL)<br />{<br />perror("error getcwd");<br />exit(1);<br />}<br />printf("%s/n", strCurPath);<br />return 0;<br />}<br />

假如運行成功,父進程在daemon函數運行完畢後自殺,以後的休眠和列印全部是子進程來運行。

可以修改daemon函數的參數來查看效果。

可以去掉daemon一句,用./a.out&來驗證效果。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.