最新要闻
- 环球观焦点:女子住酒店被毒蛇咬伤 酒店拒担全责有啥能证明引热议:律师发声
- 世界即时:奇葩创维汽车:碰撞试验0分 开创维汽车寿命延长30岁
- 环球微头条丨70岁赵雅芝踏青 短裤白衫引网友惊叹:真不老女神
- 热点!或12万起售对刚比亚迪海豚 大众微型电动车ID.2all概念车首发
- 世界快报:曾引发隐私争议 谷歌眼睛正式停售:退出科技舞台
- 【时快讯】海报丨人民武警忠诚党
- 起底汕头赤脚踩腌菜涉事公司:成立才1年时间
- 天天微动态丨阿根廷游戏制作人感谢中国玩家 理解了什么是“精神阿根廷人”
- 全球微动态丨年轻人看不上!瓦工年收入或超25万元仍招不到人 网友感慨能秒杀多数白领
- 【全球新要闻】微微一笑很倾城里面的游戏_微微一笑很倾城里面的游戏是什么
- 报道:河南兄弟俩花光父亲百万死亡赔偿金打赏女主播 平台:想退款拿出依据
- 世界热头条丨印度计划强制要求手机厂商允许删除预装应用:印度制造还要模仿中国互联网产业
- 焦点日报:Tiffany被曝一钻两卖 当事人交18.6万后被告知已卖掉:网友唏嘘钻石真不值钱
- 人民网评东方甄选疑似售假:东方甄选要选真的
- 当前信息:养殖虾当野生虾卖 东方甄选深夜道歉:公司承担 不要攻击主播
- 世界微头条丨2023年央视315晚会一文看懂:12大消费陷阱防不胜防
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Linux进程通信 | 信号
一、什么是信号?
信号就像是一个突然的电话铃声,它会打断正在进行的程序并引起其注意。
在Linux系统中,信号是一种软件中断,它通常是异步发生的,可以用来通知进程某个事件已经发生。。每个信号都有一个唯一的编号,编号从1开始。进程可以通过注册信号处理函数来处理信号。
二、信号的分类
Linux系统中的信号有两类:标准信号和实时信号。
(资料图)
标准信号是传统Unix系统中的信号,编号范围从1到31。
实时信号是Linux独有的信号,编号范围从32到64。
三、信号的使用
1、注册信号处理函数
在C语言中,可以使用signal函数来注册信号处理函数。signal函数原型如下:
void (*signal(int signum, void (*handler)(int)))(int);
其中,signum参数表示要注册的信号编号,handler参数表示信号处理函数。signal函数会返回上一次注册的信号处理函数的地址。
下面是一个简单的例子,注册SIGINT信号的处理函数:
#include #include #include void sigint_handler(int signo){ printf("Received SIGINT signal!\n"); exit(0);} int main(){ if (signal(SIGINT, sigint_handler) == SIG_ERR) { perror("signal"); exit(1); } while (1) { printf("Hello World!\n"); sleep(1); } return 0;}
在上面的例子中,我们首先定义了一个名为sigint_handler的函数,用于处理SIGINT信号。
在main函数中,我们使用signal函数注册了SIGINT信号的处理函数。如果signal函数返回的值是SIG_ERR,表示注册信号处理函数失败。
在循环中,我们只是简单地输出Hello World!字符串,并使用sleep函数暂停1秒钟,以便观察信号处理过程。
- 编译并运行,打印如下
[wayne@wayne:~]./signalHello World!Hello World!Hello World!
2、发送信号
2.1 kill函数
在Linux系统中,可以使用kill函数向进程发送信号。kill函数原型如下:
int kill(pid_t pid, int sig);
其中,pid参数表示进程的PID号,sig参数表示要发送的信号编号。如果pid参数的值是0,表示将信号发送给与当前进程属于同一个进程组的所有进程。
下面是一个例子,向指定进程发送SIGINT信号:
#include #include #include #include int main(int argc, char **argv){ if (argc < 2) { fprintf(stderr, "Usage: %s \n", argv[0]); exit(1);}pid_t pid = atoi(argv[1]);if (kill(pid, SIGINT) == -1) { perror("kill"); exit(1);}return 0;}
在上面的例子中,我们首先检查命令行参数,如果参数不足,就打印使用说明并退出程序。
然后我们将命令行参数转换为进程PID号,并使用kill函数向该进程发送SIGINT信号。如果kill函数返回-1,表示发送信号失败。
- 编译并运行,打印如下
[wayne@wayne:~] ps aux | grep signalwayne 5902 0.0 0.0 2028 280 pts/25 S+ 19:04 0:00 ./signalwayne 5904 0.0 0.0 6108 852 pts/24 S+ 19:04 0:00 grep --color=auto signal[wayne@wayne:~] ./killsignal 5902// 此时上面运行的signal进程会收到信号,打印如下信息Received SIGINT signal!
2.2 kill命令
我们也可以在shell中,用kill命令向进程发送信号,kill命令的语法如下:
kill [options]
其中,pid表示要发送信号的进程PID号。options是一些可选参数,例如,可以使用-9参数发送SIGKILL信号。
我们可以打开一个新的终端窗口,使用ps命令查看本文介绍的示例程序的PID号,然后使用kill命令向该进程发送SIGINT信号,示例如下:
$ ps aux | grep signalwayne 5902 0.0 0.0 2028 280 pts/25 S+ 19:04 0:00 ./signalwayne 5904 0.0 0.0 6108 852 pts/24 S+ 19:04 0:00 grep --color=auto signal$ kill -2 5902
这里我们使用ps命令查找名为signal的进程的PID号为5902,然后使用kill命令向该进程发送SIGINT信号(信号编号为2)。在执行kill命令之后,我们可以看到示例程序输出了"Received SIGINT signal"这一行信息,说明信号处理函数已经被正确调用了。
四、常用信号
Linux系统中常用的信号有很多,下面列出一些常用的信号及其含义:
信号编号 | 信号名称 | 含义 |
---|---|---|
1 | SIGHUP | 终端挂起或者控制进程结束 |
2 | SIGINT | 中断信号,通常是CTRL-C |
3 | SIGQUIT | 终止信号,通常是CTRL-\ |
9 | SIGKILL | 强制终止进程 |
11 | SIGSEGV | 段错误 |
15 | SIGTERM | 终止信号,通常是kill命令发送的信号 |
18 | SIGCONT | 继续执行被暂停的进程 |
19 | SIGSTOP | 暂停进程 |
20 | SIGTSTP | 终端挂起或者CTRL-Z |
五、小结
总的来说,Linux 信号是一种用于通知进程发生某个事件或错误的机制,可以用于处理异常情况、进程间通信等多种场景。
以上,如果觉得对你有帮助,点个赞再走吧,这样@知微之见也有更新下去的动力!
也欢迎私信我,一起交流!
关键词:
-
Django-4
Django-41 url的路由系统1、url(r& 39;^index & 39;,views index),url(r& 39;^home & 39;,views Home as_vie
来源: Linux进程通信 | 信号
GPT-4:不了不了,这些我还做不到
每日信息:前端设计模式——迭代器模式
Django-4
每日消息!Minio架构简介
环球观焦点:女子住酒店被毒蛇咬伤 酒店拒担全责有啥能证明引热议:律师发声
世界即时:奇葩创维汽车:碰撞试验0分 开创维汽车寿命延长30岁
环球微头条丨70岁赵雅芝踏青 短裤白衫引网友惊叹:真不老女神
热点!或12万起售对刚比亚迪海豚 大众微型电动车ID.2all概念车首发
世界快报:曾引发隐私争议 谷歌眼睛正式停售:退出科技舞台
【时快讯】海报丨人民武警忠诚党
天天热议:使用旧电脑玩Linux
起底汕头赤脚踩腌菜涉事公司:成立才1年时间
天天微动态丨阿根廷游戏制作人感谢中国玩家 理解了什么是“精神阿根廷人”
全球微动态丨年轻人看不上!瓦工年收入或超25万元仍招不到人 网友感慨能秒杀多数白领
Tesseract5+OpenCV4(VS2017+win10)实现OCR识别
【全球新要闻】微微一笑很倾城里面的游戏_微微一笑很倾城里面的游戏是什么
报道:河南兄弟俩花光父亲百万死亡赔偿金打赏女主播 平台:想退款拿出依据
世界热头条丨印度计划强制要求手机厂商允许删除预装应用:印度制造还要模仿中国互联网产业
焦点日报:Tiffany被曝一钻两卖 当事人交18.6万后被告知已卖掉:网友唏嘘钻石真不值钱
焦点要闻:读Java性能权威指南(第2版)笔记18_垃圾回收E
人民网评东方甄选疑似售假:东方甄选要选真的
当前信息:养殖虾当野生虾卖 东方甄选深夜道歉:公司承担 不要攻击主播
天天热点!IDEA2022.3.2破解安装教程
每日时讯!SpringCloud Alibaba 学习圣经,10万字实现 SpringCloud 自由
天天播报:免费领取:尼恩技术圣经PDF!带你实现 微服务自由、Docker自由、K8S自由…(史上最全)
世界消息!软件中间件,你知道哪些?
世界微头条丨2023年央视315晚会一文看懂:12大消费陷阱防不胜防
针对315曝光问题 各地连夜行动:已调查免费评书机骗局、售卖水军公司等
无视4G/5G信号打电话!中国电信今年将在深圳率先部署VoWiFi
世界速看:针对央视315曝光问题 各地连夜行动!2259.8万粉丝大V瞬间被封
全球观察:iQOO回应难以删除数据:只是测试演示 问题与品牌无关
与或门常用表达式_与或门
环球热推荐:论文阅读—第一篇《ImageNet Classification with Deep Convolutional Neural Networks》
天天播报:胃食管反流病发病机制_胃食管反流病怎么调养
吴宇森执导美版《喋血双雄》主演敲定!《速激》女星出演
天天新动态:央视315揭秘恢复出厂设置:并非彻底清除手机数据
环球微动态丨央视315晚会曝光直播间苦情戏 2000多万粉丝的网红被秒封
当前视讯!16次全胜!长征十一火箭成功发射试验十九号卫星
5.9 GDT与IDT的初始化(harib02i)
环球快资讯:谈谈GPT-4模型的亮点
世界头条:ChatGPT对跟踪算法以及跟踪轨迹问题的解答
今日热讯:央视315晚会曝光直播间苦情戏:“儿子”们专骗老人、1.2元“神药”卖9.9元
全球滚动:任天堂:Switch 2将给玩家新惊喜和新玩法
即时看!央视3·15曝光:水军操盘直播间诱导跟风下单 一台手机操控2万个
day04-实现SpringBoot底层机制
焦点报道:有监督学习——支持向量机、朴素贝叶斯分类
当前动态:Windows 下 JNA 调用动态链接库 dll
Java并发小结02
【新视野】区块链技术入门教程 - Decert
热门:512GB售价8999元:雷克沙发布新款CFexpress Type-B存储卡
今日热闻!459元 腾达发布首款面板AP:10秒下载一部电影
2023央视3·15晚会第一曝 “泰国香米”竟是香精勾兑!渉事公司食品许可证已失效
快播:第130篇:BOM(window对象)
全球快消息!hdr和sdr区别_hdr
快消息!SteamDeck升级OLED屏无望:V社称难度比预想中更高
焦点播报:俄式风味!秋林格瓦斯:12瓶到手24元 0脂低糖
微星推出G2712电竞显示器:170Hz高刷、1ms响应
全球消息!“史诗级产品”!GPT-4来了:看图玩梗考律师 能力超90%人类
世界消息!偷工减料!南京蜜雪冰城频繁改标签过期继续用 被责令整改
环球速递!火山引擎数智平台 VeDI 帮助智能投影仪更懂用户需求
天天观察:【学习日志】Java基本数据类型的自动装箱和拆箱
焦点滚动:智能制造 | AIRIOT智慧工厂管理解决方案
看热讯:iOS转场之present与dismiss的使用
网易云音乐会员不再支持车机版 车上听歌要加钱
天天滚动:U20国足队长出局后一夜没睡:裁判对中国队不公
焦点观察:中国土豪花109万元购买《CS:GO》AK47野荷皮肤 网友吐槽太丑
长安深蓝SL03行驶中自燃 车尾冒出明火和浓烟
世界看热讯:上海网红餐厅火烧云吃出异物:店家称没吃出问题就算了
当前速读:Linux LVM磁盘分区管理
环球今头条!记录--前端实现电子签名(web、移动端)通用
新动态:GPT-4 重磅发布,用户直呼:强得离谱
【聚看点】Python处理Unicode字符时出现中文乱码的情况
世界今亮点!go开发入门篇之go语言
【世界速看料】充电慢犯法!iPhone 15若限制充电速度或违反欧盟法律
当前观点:词典笔迎来第三代!阿尔法蛋AI词典笔T20图赏
每日播报!旧车置换宝马新车?4S店销售“张伟”骗了13位车主200余万元
【世界播资讯】国内喝星巴克的人越来越少了引热议:至少30元/杯、国人消费理智、竞争加剧
焦点简讯:电影《红海行动2》今年开拍:前作票房超36亿 网友“自来水”安利
【全球快播报】10999元起 LG gram Style轻薄本开售:轻至999g
天天新动态:HTML/XML字符转义对照表
环球新消息丨易基因:高通量测序后的下游实验验证方法——ChIP-seq篇|干货系列
焦点观察:爬虫-requests
记一次运气非常好的服务器渗透经历
【环球快播报】Chrome高级调试技巧
《黑暗荣耀2》演员被查有无校园暴力 空姐名场面是CG
【世界报资讯】《暗黑破坏神4》终极版宣传片发布:花100美元提前4天玩 还送坐骑等
当前最新:六分钟泡出武汉热干面 原汁味道!大汉口速食热干面大促:2.5元/袋
全球热议:借车给朋友车祸致人死亡!车主被判担责三成
实现内屏自动开合!魅族新折叠屏手机专利公布
全球简讯:外网信息搜集
每日热门:这啥?竟能让羊毛党无能狂怒!|无感验证还不快来体验
全球快讯:02.SQL
通过随机数Random 和 redis的incr每次增加一的原子性来动态绑定队列
uniapp,常用工具函数
天天讯息:2023年3月15日商丘嘉盛纸业A级箱板纸价格下调
每日信息:扫码点餐索要手机号违法吗?消保委暗访奶茶店和快餐店
全球热讯:山航就中国俄航等调侃信息发声明:不认同不符合客观事实的内容
东方甄选被曝养殖虾当野生虾卖 官方回应:被供应商骗了
【世界快播报】三星回应Galaxy S23 Ultra拍月亮“造假”:未进行任何图像叠加处理