博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux Linux程序练习七
阅读量:5125 次
发布时间:2019-06-13

本文共 1352 字,大约阅读时间需要 4 分钟。

题目:实现两个程序mysignal、mycontrl,mycontrl给mysignal发送SIGINT信号,控制mysignal是否在屏幕打印“hello”字符串。

 

//捕捉信号#include 
#include
#include
#include
#include
#include
int flag=0;void catch_sig(int sign){ switch(sign) { case SIGINT: flag=flag==0?1:0; break; case SIGALRM: exit(0); }}int mysignal(int sign,void (*func)(int)){ struct sigaction act,oact; act.sa_handler=func; sigemptyset(&act.sa_mask); act.sa_flags=0; return sigaction(sign,&act,&oact);}int main(int arg,char *args[]){ //注册信号 mysignal(SIGINT,catch_sig); mysignal(SIGALRM,catch_sig); while(1) { if(flag==1) printf("hello\n"); sleep(1); } return 0;}
//发送信号#include 
#include
#include
#include
#include
#include
#include
int main(int arg,char * args[]){ if(arg<2) { printf("请输入一个参数!\n"); return -1; } int resid=0; pid_t pid=atoi(args[1]); resid=kill(pid,SIGALRM); if(resid!=0) { printf("error message:%s\n",strerror(errno)); return -1; } return 0;}
.SUFFIXES:.c .oCC=gccSRCS=mycontrl.cOBJS=$(SRCS:.c=.o)EXEC=contrlstart:$(OBJS)    $(CC) -o $(EXEC) $(OBJS)    @echo "^_^-----OK------^_^".c.o:    $(CC) -Wall -g -o $@ -c $

 

转载于:https://www.cnblogs.com/zhanggaofeng/p/5851289.html

你可能感兴趣的文章
前端监控
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Python IO模型
查看>>