Linux下的c语言编程

4。守护进程的创建

如果你在DOS时代写过程序,那么你可能知道我们要写多少代码才能在DOS下写一个内存驻留程序。相反,在Linux下编写一个“内存常驻”程序是非常容易的。我们只需要几行代码就可以做到。其实因为Linux是一个多任务操作系统,所以我们可以把一个程序放在后台,不用写代码。我们只需要加上&;符号SHELL将把我们的程序放在后台运行。在这里,我们“开发”了一个在后台检查电子邮件的程序。这个程序会在指定的时间回去查看我们的邮箱,如果发现我们有邮件,就会不断报警(通过机箱上的小喇叭)。这个功能有一个增强版本。

创建后台进程的思路:首先父进程创建子进程,然后子进程杀死父进程(是不是无情?).信号处理的所有工作都由子进程处理。

#包括

#包括

#包括

#包括

#包括

#包括

#包括

/* Linux中沉默者的电子邮件地址是/var/spool/mail/用户的登录名*/

#定义邮件"/var/spool/mail/hoyt "

/*睡眠10秒*/

#定义睡眠时间10

主要(无效)

{

pid_t子级;

if((child=fork())==-1)

{

printf("Fork Error:%s\n ",strerror(errno));

退出(1);

}

else if(child & gt;0)

while(1);

if(kill(getppid(),SIGTERM)=-1)

{

printf("Kill Parent Error:%s\n ",strerror(errno));

退出(1);

}

{

int mailfd

while(1)

{

if((mailfd=open(MAIL,O_RDONLY))!=-1)

{

fprintf(stderr," %s "," 007 ");

关闭(mailfd);

}

睡眠(SLEEP _ TIME);

}

}

}

您可以在默认路径下创建您的电子邮件文件,然后测试此程序。当然,这个程序还有待完善。我们稍后会对这个小程序进行改进,在看到我的改进之前,你可以自己尝试改进。比如让用户指定邮件的路径和睡眠时间等等。我相信你能做到。去吧,勇敢的探险家。

好了,流程部分的内容就讲到这里吧。进程是一个非常重要的概念,很多程序都使用子进程。创建子进程是每个程序员的基本要求!