飞凌嵌入式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() 函数,输出恢复的消息。

相关推荐
network_tester2 天前
TSN台架系统测试:从实验室验证到智能驾驶落地的关键桥梁
网络·网络协议·5g·汽车·信息与通信·信号处理·tcpdump
【建模先锋】2 天前
强噪声故障诊断新思路!从频域降噪到故障分类:FusADFaultClassifier 自适应谱降噪分类模型详解
人工智能·深度学习·分类·数据挖掘·信号处理·故障诊断·降噪算法
lqqjuly3 天前
信号处理:频域分析、数字滤波与谱估计
信号处理
yong99903 天前
基于MATLAB的雷达数字信号处理
开发语言·matlab·信号处理
zxsd_xyz4 天前
LabVIEW寄存器教程
信息可视化·信号处理·labview·寄存器
【建模先锋】4 天前
独家复现!从 FFT 频域特征到全连接图分类:基于图卷积神经网络 GCN 的滚动轴承故障诊断模型
深度学习·分类·cnn·信号处理·代码分享·图卷积神经网络·轴承故障诊断
kaikaile19954 天前
盲源分离(BSS)程序代码:信号处理与模态识别
前端·信号处理
wandertp5 天前
对信号处理及滤波器的理解---基于robomaster机器人嵌入式控制系统
arm开发·stm32·算法·信号处理
zbtlink6 天前
路由器装上AI,网速能快多少?
人工智能·智能路由器·信号处理
zxsd_xyz7 天前
基于LabVIEW的虚拟频谱分析仪设计与实现
信息可视化·信号处理·labview·滤波器·虚拟频谱分析仪