Linux的闹钟信号

闹钟

alarm

函数原型:unsigned int alarm(unsigned intseconds);

功能:计时seconds秒,时间到达给当前进程发送SIGALRM信号。

注意:每个进程只有一个闹钟

返回值:

成功:上次闹钟剩余时间

alarm(0)表示取消闹钟

信号捕捉

注册信号捕捉函数,使进程接收到待捕捉的信号时不执行其默认处理动作而执行我们给他设置的函数

函数原型:

typedef void(*sighandler_t)(int);

sighandler_t signal(int signum,sighandler_thandler);

参数:

signum:待捕捉信号

handler:一个函数指针,指向捕捉函数的地址

int sigaction(int signum,cosnt structsigaction *act,struct sigaction *oldact);

参数:

signum:待捕捉信号的编号

act:结构体,主要有三个元素

sa_handler 信号捕捉函数的函数指针

sa_flags 信号捕捉的属性 0表示使用默认属性,默认会屏蔽自身信号

sa_mask 表示在执行信号捕捉函数期间生效阻塞信号集

使用sigaction捕捉闹钟信号

关于进程回收:

SIGCHLD:当子进程的状态发生变化时,会向子进程的父进程发送SIGCHLD信号SIGCHLD默认处理动作是忽略

最好的的子进程回收的方式是什么

wait阻塞回收

非阻塞忙轮询回收

最好的方式:当子进程结束的时候子进程能够通知父进程,父进程可以马上回收子进程

利用信号回收子进程

查看未决信号集的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值