问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在Linux下用C语言编程

发布网友 发布时间:2022-04-19 14:47

我来回答

2个回答

热心网友 时间:2022-05-04 22:33

4。守护进程的创建
如果你在DOS时代编写过程序,那么你也许知道在DOS下为了编写一个常驻内存的程序我们要编写多少代码了.相反如果在Linux下编写一个"常驻内存"的程序却是很容易的.我们只要几行代码就可以做到. 实际上由于Linux是多任务操作系统,我们就是不编写代码也可以把一个程序放到后台去执行的.我们只要在命令后面加上&符号SHELL就会把我们的程序放到后台去运行的. 这里我们"开发"一个后台检查邮件的程序.这个程序每个一个指定的时间回去检查我们的邮箱,如果发现我们有邮件了,会不断的报警(通过机箱上的小喇叭来发出声音). 后面有这个函数的加强版本加强版本
后台进程的创建思想: 首先父进程创建一个子进程.然后子进程杀死父进程(是不是很无情?). 信号处理所有的工作由子进程来处理.

#include
#include
#include
#include
#include
#include
#include

/* Linux 的默任个人的邮箱地址是 /var/spool/mail/用户的登录名 */

#define MAIL "/var/spool/mail/hoyt"

/* 睡眠10秒钟 */

#define SLEEP_TIME 10

main(void)
{
pid_t child;

if((child=fork())==-1)
{
printf("Fork Error:%s\n",strerror(errno));
exit(1);
}
else if(child>0)
while(1);
if(kill(getppid(),SIGTERM)==-1)
{
printf("Kill Parent Error:%s\n",strerror(errno));
exit(1);
}
{
int mailfd;

while(1)
{
if((mailfd=open(MAIL,O_RDONLY))!=-1)
{
fprintf(stderr,"%s","\007");
close(mailfd);
}
sleep(SLEEP_TIME);
}
}
}

你可以在默认的路径下创建你的邮箱文件,然后测试一下这个程序.当然这个程序还有很多地方要改善的.我们后面会对这个小程序改善的,再看我的改善之前你可以尝试自己改善一下.比如让用户指定邮相的路径和睡眠时间等等.相信自己可以做到的.动手吧,勇敢的探险者.
好了进程一节的内容我们就先学到这里了.进程是一个非常重要的概念,许多的程序都会用子进程.创建一个子进程是每一个程序员的基本要求!

热心网友 时间:2022-05-04 23:51

#include <unistd.h>;
#include <sys/types.h>;
#include <sys/stat.h>;
#include <stdio.h>;
#include <errno.h>;
#include <fcntl.h>;
#include <signal.h>;
/* Linux 的默任个人的邮箱地址是 /var/spool/mail/用户的登录名 */
#define MAIL "/var/spool/mail/hoyt"
/* 睡眠10 秒钟 */
#define SLEEP_TIME 10

main(void)
{
pid_t child;
if((child=fork())==-1)
{
printf("Fork Error:%s\n",strerror(errno));
exit(1);
}
else if(child > 0)
while(1);
if(kill(getppid(),SIGTERM)==-1)
{
printf("Kill Parent Error:%s\n",strerror(errno));
exit(1);
}

{
int mailfd;
while(1)
{
if((mailfd=open(MAIL,O_RDONLY))!=-1)
{
fprintf(stderr,"%s","\007");
close(mailfd);
}

sleep(SLEEP_TIME);
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么样制作个人简历 上海海事大学对外交流多麽出国会不会容易一些 上海海事大学提前批今年要几号才能出来 怎么查找大学家长群 北京慧学堂在线教育学校的老师打电话来说要交3480元钱,给孩子半年的在... 左脸颊长青春痘是什么原因? 某商店上午9:00开始营业全天营业8小时下午几点关门 (2012?泗县模拟)某商店每天10:00-18:00营业,全天营业88小时. 某商店每天9:20-18:00营业,全天营业()小时。老师早上7:30到校,下午4... 商场营业时间是上午8:00-下午6:00,一位顾客向一位老先生嗯打听时间了... 在Linux下如何开发C程序? linux下的C语言编程需要什么 linux下的c/c++开发 关于Linux下的C/c++编程 Linux下的C编程和Windows下有什么区别?越详细越好... 到底怎么在Linux里编写c程序啊? linux下c编程的软件下载地址? 学C语言编程用Linux的哪个版本好 在Linux下有没有什么图形化界面的C编程工具?介绍... linux系统下用什么开发工具进行C,C++,编程 C++在LINUX系统下用什么软件编程? 如何看华为mate是不是全网通 气泡膜机器出料薄厚不均匀这是为什么 气泡膜怎么做的 想把气泡膜拉的更薄用什么 再生料做气泡膜老串气怎么办? 镀铝气泡膜适用于什么货物 做气泡膜垫线型加多了会怎样 气泡膜机中间下料厚薄不均匀怎麽调 请问,用回料做气泡膜,为什么会断料和厚薄不均,... 华为P10怎么查看是否是全网通 机械键盘是选红轴还是茶轴?,, 红轴键盘适合玩游戏吗? 机械键盘红轴和茶轴有什么区别? 红轴机械键盘和青轴有什么区别? 论性价比,机械键盘是选红轴还是茶轴? 玩游戏机械键盘用红轴好还是黑轴好 红轴机械键盘是什么手感? 机械键盘的红轴和黑轴的区别 红轴机械键盘推荐 机械键盘红轴怎么样啊 想入一把 玩玩游戏什么的 机械键盘茶轴和红轴有什么区别? 机械键盘红轴和青轴哪个好 蟹味菇要煮多久才熟? 蟹味菇煮几分钟熟? 蟹味菇煮多久能熟 蟹味菇要煮多久可以吃 海鲜菇煮多久几分钟能熟 蟹味菇一天多久 干的蟹味菇要泡多久?怎样清洗蟹味菇?