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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h> #include <unistd.h>
#include <signal.h> int flag=; void catch_sig(int sign)
{
switch(sign)
{
case SIGINT:
flag=flag==?:;
break;
case SIGALRM:
exit();
}
} int mysignal(int sign,void (*func)(int))
{
struct sigaction act,oact;
act.sa_handler=func;
sigemptyset(&act.sa_mask);
act.sa_flags=;
return sigaction(sign,&act,&oact);
} int main(int arg,char *args[])
{
//注册信号
mysignal(SIGINT,catch_sig);
mysignal(SIGALRM,catch_sig);
while()
{
if(flag==)
printf("hello\n");
sleep();
}
return ;
}
//发送信号
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h> #include <unistd.h>
#include <sys/types.h>
#include <signal.h> int main(int arg,char * args[])
{
if(arg<)
{
printf("请输入一个参数!\n");
return -;
}
int resid=;
pid_t pid=atoi(args[]);
resid=kill(pid,SIGALRM);
if(resid!=)
{
printf("error message:%s\n",strerror(errno));
return -;
}
return ;
}
.SUFFIXES:.c .o
CC=gcc
SRCS=mycontrl.c
OBJS=$(SRCS:.c=.o)
EXEC=contrl start:$(OBJS)
$(CC) -o $(EXEC) $(OBJS)
@echo "^_^-----OK------^_^"
.c.o:
$(CC) -Wall -g -o $@ -c $<
clean:
rm -f $(OBJS)
rm -f $(EXEC)

最新文章

  1. linux基本知识
  2. kmeans算法实践
  3. 【Java EE 学习 23】【log4j的使用】【ant的使用】【内省】
  4. bootstrap的下载
  5. Druid数据库连接池配置
  6. 利用target的特性,可以实现纯css的tab效果切换
  7. SQL Server(一)——数据库基础知识
  8. zlog学习笔记(mdc)
  9. cf555b
  10. oracle使用dbms_metadata包取得所有对象DDL语句
  11. Python科学计算发行版—Anaconda
  12. Hive2 jdbc test
  13. POJ 3484
  14. ajax参数中出现空格
  15. [置顶] 实习总结3-job hunting(西安工作)
  16. 2006 ACM Northwestern European Programming Contest C题(二分求最大)
  17. .net SMTP发送Email 更新(可带附件)
  18. 2014年TI杯大学生电子设计竞赛地区赛使用仪器及器件、设备
  19. c#后台输出javascript语句和一些通用验证的类
  20. Footer固定在页面底部(CSS)

热门文章

  1. 快速与MySQL交互,使用XMAPP打开MySQL数据库,并用shell进行与MySQL交互&lt;Window 10&gt;
  2. C++ 中引用与指针的区别
  3. JavaScript Patterns 4.4 Self-Defining Functions
  4. 算法(二)之遗传算法(SGA)
  5. 读书笔记——Windows核心编程(8)Interlocked单向链式栈
  6. windows 下my.ini的配置优化
  7. JAVA基础知识点:内存、比较和Final
  8. 获取某地的经纬度 &amp;&amp; 通过经纬度获取相应的地理位置
  9. redis 非集群的主从配置及切换
  10. Asp.net web form 动态生成控件的注意事项