欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用模板的方式創(chuàng)建守護(hù)進(jìn)程代碼實(shí)例

 更新時(shí)間:2013年12月19日 15:17:25   作者:  
用模板的方式創(chuàng)建守護(hù)進(jìn)程,只需要定義一個(gè)與int work(int argc,char **argv)相同的偽入口函數(shù)傳入start_domain()函數(shù)即可

復(fù)制代碼 代碼如下:

#include "wrap.h"
#define MYDOMAIN_FLAG "/tmp/.mydomain_log"

void domain_end(){
 Unlink(MYDOMAIN_FLAG);
}

int domain_init(){
 int fd;
 fd=open(MYDOMAIN_FLAG,O_RDWR|O_CREAT|O_EXCL|O_APPEND,0600);
 if(fd==-1)
  err_sys(errno,"domain faild, %s",MYDOMAIN_FLAG);
 Dup2(fd,1);
 Dup2(fd,2);
 return fd;
}
/*
功能:
 work函數(shù)為我們的工作函數(shù),他的返回值,會(huì)被init()系統(tǒng)進(jìn)程收集作為守護(hù)的退出碼
參數(shù):
 argc,argv均為入口函數(shù)main()的參數(shù)副本。
*/
int work(int argc,char **argv){
 while(1){
  sleep(60);
  err_msg("one loop....");
 }
 return 0;
}
int start_domain(int argc,char **argv,int (*work)(int argc,char **argv)){
 pid_t pid;
 int  fd,ecode;
 fd=domain_init();
 if(Fork()==0){
  if(Fork()==0){
   Atexit(domain_end);
   err_msg("domain has ran sucessfully....");
   /*如果work()的返回時(shí)間比其父進(jìn)程調(diào)用exit(0)的時(shí)間早,將不會(huì)被init()進(jìn)程領(lǐng)養(yǎng)。以后我們會(huì)用管道的特點(diǎn)來(lái)同步父子進(jìn)程。*/
   ecode=work(argc,argv);
   exit(ecode);
  }
  exit(0);
 }
 Wait(NULL);
 return 0;
}
int main(int argc,char **argv){
 return start_domain(argc,argv,work);
}

相關(guān)文章

  • hi 感恩節(jié)——Linux基礎(chǔ)教程之mysql和php

    hi 感恩節(jié)——Linux基礎(chǔ)教程之mysql和php

    這篇文章主要介紹了hi 感恩節(jié)——Linux基礎(chǔ)教程之mysql和php的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • shell批量創(chuàng)建文件并重新命名的實(shí)例代碼

    shell批量創(chuàng)建文件并重新命名的實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于shell批量創(chuàng)建文件并重新命名的相關(guān)資料,文中還介紹了批量刪除文件以及文件更名的多種方法,每種方法都給出了詳細(xì)實(shí)例代碼,需要的朋友可以參考下
    2021-07-07
  • 使用find命令快速定位配置文件位置

    使用find命令快速定位配置文件位置

    大家知道在配置的時(shí)候咱們經(jīng)常需要修改配置文件,甚至現(xiàn)在的開發(fā)就是配配配,記又記不住,每次自己查找太費(fèi)時(shí)間,最近學(xué)會(huì)了一個(gè)命令-find,現(xiàn)在分享以下,本文以nginx為例子給大家詳細(xì)介紹,對(duì)find命令定位配置文件位置相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-12-12
  • 對(duì)用戶輸入的判斷的shell實(shí)現(xiàn)代碼

    對(duì)用戶輸入的判斷的shell實(shí)現(xiàn)代碼

    今天的案例是將 對(duì)用戶輸入的判斷的shell腳本,需要的朋友可以參考下
    2016-08-08
  • 淺談ubuntu 中sudo update與upgrade的作用及區(qū)別

    淺談ubuntu 中sudo update與upgrade的作用及區(qū)別

    下面小編就為大家?guī)?lái)一篇淺談ubuntu 中sudo update與upgrade的作用及區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Shell腳本對(duì)比兩個(gè)文本文件找出不同行的2個(gè)方法分享

    Shell腳本對(duì)比兩個(gè)文本文件找出不同行的2個(gè)方法分享

    這篇文章主要介紹了Shell腳本對(duì)比兩個(gè)文本文件找出不同行的2個(gè)方法分享,本文分別使用comm命令法、grep命令法實(shí)現(xiàn),需要的朋友可以參考下
    2014-12-12
  • Shell腳本字符串單引號(hào)和雙引號(hào)的區(qū)別淺析

    Shell腳本字符串單引號(hào)和雙引號(hào)的區(qū)別淺析

    這篇文章主要介紹了Shell腳本字符串單引號(hào)和雙引號(hào)的區(qū)別淺析,,并羅列了一些字符串的操作方法,需要的朋友可以參考下
    2014-07-07
  • linux shell 中數(shù)組的定義和for循環(huán)遍歷的方法

    linux shell 中數(shù)組的定義和for循環(huán)遍歷的方法

    今天小編就為大家分享一篇linux shell 中數(shù)組的定義和for循環(huán)遍歷的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Linux?grep?-q用法示例詳解

    Linux?grep?-q用法示例詳解

    grep指令用于查找內(nèi)容包含指定的范本樣式的文件,如果發(fā)現(xiàn)某文件的內(nèi)容符合所指定的范本樣式,預(yù)設(shè)grep指令會(huì)把含有范本樣式的那一列顯示出來(lái),這篇文章主要介紹了Linux?grep?-q用法示例詳解,需要的朋友可以參考下
    2023-02-02
  • linux下通過(guò)命令行獲取gmail的新郵件

    linux下通過(guò)命令行獲取gmail的新郵件

    在這篇文章中,我將為你展示 Linux 命令行的另一個(gè)漂亮干練的使用案例:訪問(wèn) Google 的 Gmail 服務(wù),有需要的小伙伴可以參考下。
    2015-05-05

最新評(píng)論