当前位置: 技术问答>linux和unix
进程定时执行问题
来源: 互联网 发布时间:2015-07-07
本文导语: C程序是这样运行的:由一个父进程fork()出十几个子进程,怎么实现每天固定一个时间执行子进程中的代码?用什么函数实现? 我想过用另外一个进程定时发送信号给此程序的子进程,但是这样编程复杂性就高了 ...
C程序是这样运行的:由一个父进程fork()出十几个子进程,怎么实现每天固定一个时间执行子进程中的代码?用什么函数实现?
我想过用另外一个进程定时发送信号给此程序的子进程,但是这样编程复杂性就高了
|
linux下是通过信号(signal)来实现定时器的。具体来说,是给进程发送SIGALRM信号,当进程收到此信号后,救执行你设定的代码。其实就是软中断。
可以用一下代码安装一个定时器:
static
void sig_alarm(int signo)
{
/* 重新安装中断处理函数 */
signal(SIGALRM, sig_alarm);
/* 定时处理函数。*/
your code...
}
int
main(void)
{
/* 安装信号处理函数 */
if( signal(SIGALRM, sig_alarm)
可以用一下代码安装一个定时器:
static
void sig_alarm(int signo)
{
/* 重新安装中断处理函数 */
signal(SIGALRM, sig_alarm);
/* 定时处理函数。*/
your code...
}
int
main(void)
{
/* 安装信号处理函数 */
if( signal(SIGALRM, sig_alarm)