定时启动任务函数
来源:互联网 发布:centos tmp文件夹 编辑:程序博客网 时间:2024/05/16 07:43
#include <stdio.h>
#include <signal.h>
#include <sys/time.h>
#include <unistd.h>
ITIMER_REAL SIGALRM
ITIMER_VIRTUAL SIGVTALRM
ITIMER_PROF SIGPROF
void timer(int signo)
SIGALRM
struct itimerval value;
struct itimerval
{
struct timeval it_interval;
struct timeval it_value;
};
struct timeval
{
long tv_sec;
long tv_usec;
};
setitimer(ITIMER_REAL, &value, NULL);
函数名: signal
表头文件 #include<signal.h>
功 能: 设置某一信号的对应动作
函数原型 :void (*signal(int signum,void(* handler)(int)))(int);
或者:typedef void(*sig_t) ( int );
sig_t signal(int signum,sig_t handler);
参数说明:
第一个参数signum指明了所要处理的信号类型,它可以取除了SIGKILL和SIGSTOP外的任何一种信号。
第二个参数handler描述了与信号关联的动作,它可以取以下三种值:
(1)一个无返回值的函数地址
此函数必须在signal()被调用前申明,handler中为这个函数的名字。当接收到一个类型为sig的信号时,就执行handler 所指定的函数。
这个函数应有如下形式的定义:
void func(int sig);
sig是传递给它的唯一参数。执行了signal()调用后,进程只要接收到类型为sig的信号,不管其正在执行程序的
哪一部分,就立即执行func()函数。当func()函数执行结束后,控制权返回进程被中断的那一点继续执行。
(2)SIG_IGN 这个符号表示忽略该信号,执行了相应的signal()调用后,进程会忽略类型为sig的信号。
(3)SIGDFL 这个符号表示恢复系统对信号的默认处理。
函数说明 : signal()会依参数signum 指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会跳转到参
数handler指定的函数执行。当一个信号的信号处理函数执行时, 如果进程又接收到了该信号,该信号会自动被储存而
不会中断信号处理函数的执行,直到信号处理函数执行完毕再重新调用相应的处理函数。但是如果在信号处理函数执行时进
程收到了其它类型的信号,该函数的执行就会被中断。
返回值: 返回先前的信号处理函数指针,如果有错误则返回SIG_ERR(-1)。
附加说明 :在信号发生跳转到自定的handler处理函数执行后,系统会自动将此处理函数换回原来系统预设的处理方式,如果要
改变此操作请改用sigaction()。
例子:
#include <stdio.h>
#include <signal.h>
#include <sys/time.h>
#include <unistd.h>
void timer(int signo)
{
if (SIGALRM == signo)
{
printf("signo = %d\n", signo);
signal(SIGALRM, timer);
}
}
int main(int argc, char **argv)
{
struct itimerval time;
signal(SIGALRM, timer);
time.it_interval.tv_sec = 2;
time.it_interval.tv_usec = 0;
time.it_value.tv_sec = 2;
time.it_value.tv_usec = 0;
setitimer(ITIMER_REAL, &time, NULL);
while (1);
return 0;
}
- 定时启动任务函数
- Java启动定时任务
- 项目启动定时任务
- Android启动定时任务
- windows定时任务 bat文件 定时启动
- Spring实现定时启动任务
- crontab定时启动执行任务
- 嵌入式启动定时任务代码
- 多线程 - 定时任务及启动
- 利用crontab定时启动任务
- Timer启动一个定时任务
- Spring定时任务启动两次
- 如何启动定时任务crontab?
- play framework 添加启动任务、定时任务
- Linux定时启动任务的一些命令...
- C#(Web)实现定时启动任务
- Ubuntu环境下自动定时启动任务
- ORACLE启动定时任务同步数据
- 年内房价未必有下跌
- 列表库数据类型
- HTML5标签
- android Service详解
- Selenium, Eclipse, Junit折腾记
- 定时启动任务函数
- C#学习——类型转换
- PHP-chr函数 对应的AscII码
- 网站总被挂暗链
- 写封情书,遥寄时光
- (内存共享)shmget shmat和shmdt 基本内容 linux
- HTML5特性 > Canvas >图像、图案和字体
- [转]国际空间站首用激光传数据
- paxos