Daemon函数的用法

Daemon函数的用法
说明:
让一个程序后台运行。
原型:

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

参数:
当 nochdir为零时,当前目录变为根目录,否则不变;
当 noclose为零时,标准输入、标准输出和错误输出重导向为/dev/null,也就是不输出任何信 息,否则照样输出。
返回值:
deamon()调用了fork(),如果fork成功,那么父进程就调用_exit(2)退出,所以看到的错误信息 全部是子进程产生的。如果成功函数返回0,否则返回-1并设置errno。
示例:

  #include <stdio.h>  
  #include <stdlib.h>  
  #include <unistd.h>  
  #include <fcntl.h>  
  #include <limits.h>  

  int main(int argc, char *argv[])  
  {  
  char strCurPath[PATH_MAX];  

if(daemon(1, 1) < 0)  
{  
    perror("error daemon.../n");  
    exit(1);  
}  
sleep(10);  

if(getcwd(strCurPath, PATH_MAX) == NULL)  
{  
    perror("error getcwd");  
    exit(1);  
}  
printf("%s/n", strCurPath);  
return 0;  

}

假如运行成功,父进程在daemon函数运行完毕后自杀,以后的休眠和打印全部是子进程来运行。
可以修改daemon函数的参数来查看效果。
可以去掉daemon一句,用./a.out&来验证效果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Linux 进程管理与程序开发 进程是Linux事务管理的基本单元,所有的进程均拥有自己独立的处理环境和系统资源,...
    JamesPeng阅读 7,196评论 1 14
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,385评论 0 27
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,889评论 24 1,002
  • 投资是后天所学,人人都要学会投资,当然投资自己才是最划算,最有意义的一件事。 投资需要理性的头脑,不能盲目,一旦利...
    啊貴阅读 1,066评论 0 0
  • -01-年少对精致模糊的理解就是一个穿着精致的女子,花着自己的钱,享受着属于自己的生活。 电影《欲望都市》里四个个...
    烤鱼匠阅读 1,696评论 2 1