Linux下的c语言编程
如果你在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);
}
}
}
您可以在默认路径下创建您的电子邮件文件,然后测试此程序。当然,这个程序还有待完善。我们稍后会对这个小程序进行改进,在看到我的改进之前,你可以自己尝试改进。比如让用户指定邮件的路径和睡眠时间等等。我相信你能做到。去吧,勇敢的探险家。
好了,流程部分的内容就讲到这里吧。进程是一个非常重要的概念,很多程序都使用子进程。创建子进程是每个程序员的基本要求!