为了账号安全,请及时绑定邮箱和手机立即绑定

这个主函数中,为什么要把pause放在一个死循环里 什么信号到达之后会 停止pause?

这个主函数中,为什么要把pause放在一个死循环里 什么信号到达之后会 停止pause?

C
郎朗坤 2023-03-05 22:18:09
int main(){struct sigaction act;printf("rcv pid=%d\n", getpid());memset(buf,0,sizeof(buf));act.sa_sigaction = action;sigemptyset(&act.sa_mask);act.sa_flags = SA_SIGINFO;sigaction(SIGALRM, &act, NULL);while(1){pause();}}
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

也许,要的就是死循环。
拍入Enter 键 pause (暂停)结束。循环,再进入暂停。

拍入 Ctrl+C 组合键 结束程序。(有的系统是 Ctrl+D 结束).

查看完整回答
反对 回复 2023-03-08
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

只有EINTR 有信号到达中断此函数的执行。
头文件:#include <unistd.h>
定义函数:int pause(void);
函数说明:pause()会令目前的进程暂停(进入睡眠状态), 直到被信号(signal)所中断.
返回值:只返回-1.

查看完整回答
反对 回复 2023-03-08
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

这个pause()函数不会接受信号而停止,除了关闭这个程序。
其实没必要这么写!调用一次就可以了塞!

查看完整回答
反对 回复 2023-03-08
  • 3 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号