Linux Linux程序练习七
题目:实现两个程序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=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 <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<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 .o CC=gcc SRCS=mycontrl.c OBJS=$(SRCS:.c=.o) EXEC=contrlstart:$(OBJS)$(CC) -o $(EXEC) $(OBJS)@echo "^_^-----OK------^_^" .c.o:$(CC) -Wall -g -o $@ -c $< clean:rm -f $(OBJS)rm -f $(EXEC)
转载于:https://www.cnblogs.com/zhanggaofeng/p/5851289.html
Linux Linux程序练习七相关推荐
- linux应用程序安装与管理
一.Linux应用程序与命令的关系 1.基本命令是Linux系统中不可缺少的组成部分 <?xml:namespace prefix = o ns = "urn:schemas-micr ...
- 成为 Linux 终端高手的七种武器
成为 Linux 终端高手的七种武器 2017-03-23 17:34:31 来源: 点击:0 inux 终端不仅是一个键入命令的地方.如若你能熟谙这些基础技巧,那么你会在绝大多数 Li ...
- linux应用程序接收文件,Linux应用程序学习之文件编程
Linux应用程序学习之文件系统调用函数编程 上一篇我们了解了Linux系统下函数库的设计方法,这一章我们就来学习一下linux系统下常用的文件操作函数,在进行系统文件操作函数介绍前,我们首先要明白一 ...
- Linux系统编程(七)消息队列
Linux系统编程(七)消息队列 一.什么是消息队列 二.消息队列内部原理 三.实现消息队列的收发 1.发送消息队列 2.接收消息队列 四.消息队列与命名管道的比较 一.什么是消息队列 消息队列提供了 ...
- 十天学Linux内核之第七天---电源开和关时都发生了什么
十天学Linux内核之第七天---电源开和关时都发生了什么 原文:十天学Linux内核之第七天---电源开和关时都发生了什么 说实话感觉自己快写不下去了,其一是有些勉强跟不上来,其二是感觉自己越写越差 ...
- Linux学习笔记(七):文件压缩、打包与备份
Linux学习笔记(七):文件压缩.打包与备份 常见的压缩指令 gzip, zcat/zmore/zless/zgrep bzip2, bzcat/bzmore/bzless/bzgrep xz, x ...
- linux应用程序开发题库,Linux应用程序开发练习题ppt课件
.,Linux应用程序开发练习题,.,练习结构,.,第二章Linux操作,用cd命令进入到/etc文件夹用ls命令查看/etc文件家里面的所有内容用ls–dl选项显示/etc文件夹的属性用pwd命令查 ...
- linux高级程序复习(未完,整理比较粗糙)
Shell编程 1. bash的功能 1.tab补全 2.历史补全 3.别名alias 4通配符 2. 变量 1.环境变量 (PATH路径 HOME当前用户的工作目录 MAIL邮件设置 LANG语言L ...
- Linux内核分析 第七周 可执行程序的装载
张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux内核分析 第七 ...
- linux终端输出c语言程序,Linux终端程序用c语言实现改变输出的字的颜色
颜色代码: 格式: echo "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: echo "\033[41;36m something here \033 ...
最新文章
- 电路图中常用的英文缩写的中文解释
- ospf专题二:虚链路
- TreeView的异步延时加载
- meta标签的使用方法(PC端)
- arcgis字段计算器--随机数
- flex 左右布局_web前端学习:移动端开发常用布局—前端弹性布局总结
- git的一些简单使用
- 注解定时器_细数那些使用过的定时器
- STM32F4 + HAL库 + W25Q256的验证
- 高级测试开发工程师简历模板
- 不格式化改U盘文件系统格式
- 计算的威力,智慧的传奇——Fabrice Bellard
- 20220119思维导图
- 编译原理中Follow集的求法
- 介绍一种AI的抠图方法
- 联想小新 Pro 16 2023 评测
- wireshark 抓包使用教程
- 400错误可能的原因
- Linux的bind服务
- 学计算机得肩周炎,肩周炎的拔罐疗法
热门文章
- c语言八个方向迷宫课程设计,【精品资料最新版】C语言课程设计-迷宫游戏.doc...
- SDOI2014 旅行
- PostgreSQL 、springboot 、spring data jpa 集成
- pytest+allure生成漂亮的报告+显示
- Oracle之例外(异常)
- OC --(5)-- 字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序...
- Silverlight WCF RIA服务(十三)数据 3
- .NET中栈和堆的比较1
- Android 使用mqtt实例,包括接收服务器推送以及上传数据到服务器
- Apache Nifi 实战:多表导入实现及填坑 GitChat连接