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

相关推荐
科恒盛远6 天前
【无标题】
fpga开发·硬件工程·信号处理
省四收割者9 天前
一文详解信号完整性(3)--规避SI问题的具体实现方法
嵌入式硬件·硬件架构·信号处理·智能硬件·pcb工艺·altium designer
国科安芯10 天前
基于ASM1042S2S的箭载通信网络抗辐射加固方案研究
服务器·网络·嵌入式硬件·fpga开发·架构·信号处理
棱镜研途11 天前
【EI检索会议 | SPIE出版】 2026年智能计算与多模态信号处理国际学术会议(CIMSP 2026)
图像处理·算法·计算机视觉·信号处理·多模态·学术会议·智能计算
省四收割者11 天前
一文详解信号完整性(1)
python·嵌入式硬件·数学建模·信息与通信·信号处理·智能硬件
传感器与混合集成电路13 天前
深度解析电荷平衡式电流频率转换器:积分器、恒流源与阈值比较的协同设计
信号处理
奔袭的算法工程师1 个月前
论文解读--Sparse4D v3: Advancing End-to-End 3D Detection and Tracking
人工智能·目标检测·计算机视觉·自动驾驶·信号处理
江畔柳前堤1 个月前
github实战指南01-账号配置与 SSH 密钥
运维·人工智能·深度学习·ssh·github·pyqt·信号处理
江畔柳前堤1 个月前
github实战指南02-仓库管理与 Issue
人工智能·深度学习·github·信号处理·caffe·wps·issue
小白小宋1 个月前
【PUSCH番外篇】5G NR 相位补偿与频移校正:原理、流程与工程实现
算法·5g·matlab·信息与通信·信号处理