飞凌嵌入式ElfBoard-进程间的通信之信号处理pause

pause()可以让进程暂停运行,当进程被挂起时,它不会占用 CPU 资源,直到某个信号(如 SIGINT 或 SIGTERM)被发送给该进程。

1.头文件

#include <unistd.h>

2.函数原型

int pause(void);

3.参数

无。

4.返回值

pause() 在成功时不会返回。进程接收到信号并恢复执行,pause() 将返回 -1,并设置 errno为 EINTR。这通常表示进程被信号中断,不意味着出错。

5.示例:通过pause()函数暂停进程

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> void handle_signal(int sig) { printf("Received signal: %d\n", sig); } int main() { // 注册 SIGINT 信号的处理程序 signal(SIGINT, handle_signal); // 捕捉 Ctrl+C (SIGINT) 信号 printf("Process is paused. Press Ctrl+C to continue...\n"); // 调用 pause(),进程将被挂起,等待信号 pause(); // 阻塞,等待信号 // 程序恢复后,继续执行 printf("Process resumed after receiving signal.\n"); return 0; } |

6.运行结果

|--------------------------------------------------------------------------------------------------------------|
| Process is paused. Press Ctrl+C to continue... ^CReceived signal: 2 Process resumed after receiving signal. |

7.代码解析

注册signal函数用户捕获SIGINT信号,然后调用pause()函数使进程进入休眠状态,在此期间,程序不会继续执行 pause() 后的代码,也不会占用 CPU 资源,直到接收到SIGINT 信号,pause() 被中断(因为接收到信号),程序将恢复执行,执行 handle_signal() 函数,输出恢复的消息。

相关推荐
2501_929807252 天前
考研初试专业课140+总分400+重庆邮电大学801信号与系统考研经验重邮,电子信息与通信工程,真题,大纲,参考书,博睿泽信息通信Jenny。
考研·信息与通信·信号处理·通信·电子信息
kyle~2 天前
滤波---指数移动平均法(Exponential Moving Average, EMA)
数学建模·信号处理
hans汉斯8 天前
采煤工作面隐患目标检测中YOLO11与Faster R-CNN的对比研究
人工智能·目标检测·计算机视觉·cnn·信息与通信·信号处理
T.i.s9 天前
电磁波重构心电图中对金标准归一化问题的探讨
信号处理·离散化·归一化
这张生成的图像能检测吗10 天前
(论文速读)TADNet:心磁图信号去噪的时间分解和基于注意力的深度学习
人工智能·深度学习·信号处理·信号去噪
EW Frontier10 天前
【雷达信号处理】5 个阵元追平 16 个阵元:稀疏阵列 STAP 的实测报告【附python+matlab代码】
python·matlab·信号处理·雷达·mimo·稀疏阵列·stap
FPGA-ADDA12 天前
雷通微系统推出RTSD2605:RFSoC + 英伟达GPU一体化信号处理平台
信号处理·fpga·rfsoc·zu47dr·47dr
传感器与混合集成电路15 天前
储气库漏失检测技术解析:分布式光纤如何锁定环空窜漏的精确位置
分布式·数据分析·信号处理
加油码15 天前
探秘 volatile关键字:编译器的过度优化
linux·bug·信号处理
m0_5474866616 天前
《现代信号处理教程》 全套PPT课件2026
信号处理