c++ Daemon函数让服务器程序在后台运行

让一个程序在后台运行有很多方法,之前一直用的是 ./hello & 这样的形式。这个&符号就可以告诉操作系统以后台的方式运行可执行文件。今天我们来讲讲Daemon函数如何让一个程序在后台运行。

Daemon函数介绍:

<code> 

int

daemon

(

int

nochdir,

int

noclose)

/<code>

参数说明:

当nochdir为零时,当前目录变为根目录,否则不变。

当noclose为零时,标准输入,标准输出,错误输出重定向为/dev/null.也就是不输出任何信息,否则照样输出。

返回值:

deamon()调用了fork(),如果fork成功那么父进程就调用_exit(2)退出,所以看到的错误信息全部是子进程产生的,如果成功函数返回0,否则返回-1并设置errno.

<code> 
 
 
 
 

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

; }/<code>

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


c++ Daemon函数让服务器程序在后台运行


分享到:


相關文章: