后台运行程序包括三个子程序,一个父程序,一个守护初级函数,一个初始化函数,一个报告函数和一个睡眠函数。后台运行,它们缺一不可。
首先是父程序,它是整个后台运行程序最复杂的部分,也是其中的根基,它的代码如下:
void init_daemon(void) {
int pid;
int i;
if(pid=fork()) {
exit(0);
}else if(pid< 0) {
exit(1);
通过其来判断后台是否运行。
然后是第一子程序,代码如下:
if(pid=fork()) {
exit(0);
它是用来判断后台没在运行时的处理方法。
第二子程序代码如下:
else if(pid< 0) {
exit(1);
它是用来判断后台在运行时的处理方法。
第三子程序代码如下:
for(i=0;i< NOFILE;++i) {
close(i);
}
它是用来储存后台的信息。
随后是四个函数,他们充当于后台运行的形参实现:
第一个是守护初级函数,代码如下:
void init_daemon(void);
main()
{
FILE *fp;
time_t t;
init_daemon();
它的作用是充当假设后台运行的一枚钥匙。
第二个函数是初始化函数,代码如下:
while(1)
别看它只有一个语句,它却能在后台运行中无限循环,以至于支撑运行的时间。
第三个函数是报告函数,代码如下:
if((fp=fopen("test.log","a")) >=0) {
t=time(0);
fprintf(fp,"Im here at %s/n",asctime(localtime(&t)) );
fclose(fp);
它通常与睡眠函数一起使用,代码如下:
sleep(60);
睡眠函数是用来计算后台运行的时间,报告函数则是用来显示后台运行的时间,两者紧密相连,构成一个共函数。
通过以上的讲解,我们可以知道,函数和程序是离不开的,尽管这只是一个简单的后台运行程序,却离不开这么多的函数和程序,由此可知道C语言的难度很高,但却非常实用。