加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux系统编程之信号(二) 信号发送函数及不同精度的睡眠

发布时间:2016-01-20 13:32:10 所属栏目:Linux 来源:网络整理
导读:一、kill, raise, killpg 函数 int kill(pid_t pid, int sig); int raise(int sig); int killpg(int pgrp, int sig); kill命令是调用kill函数实现的,kill函数

三、setitimer 和不同精度的睡眠

1、首先来看三种不同的时间结构,如下:

time_t;/* seconds */

struct timeval {

long    tv_sec;         /* seconds */

long    tv_usec;        /* microseconds */

};

struct timespec {

time_t tv_sec;        /* seconds */

long   tv_nsec;       /* nanoseconds */

};

microseconds就是微秒, nanoseconds就是纳秒。

2、三种不同精度的睡眠

unsigned int sleep(unsigned int seconds);

int usleep(useconds_t usec);

int nanosleep(const struct timespec *req, struct timespec *rem);

3、setitimer函数

包含头文件<sys/time.h>

功能setitimer()比alarm功能强大,会间歇性产生时钟,支持3种类型的定时器。

原型:int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue));

参数:第一个参数which指定定时器类型;第二个参数是结构体itimerval的一个实例;第三个参数若不为空则返回先前定时unslept的时间。

返回值:成功返回0,失败返回-1。

参数 which的取值:

ITIMER_REAL:经过指定的时间后,内核将发送SIGALRM信号给本进程

ITIMER_VIRTUAL :程序在用户空间执行指定的时间后,内核将发送SIGVTALRM信号给本进程

ITIMER_PROF :进程在用户空间执行和内核空间执行时,时间计数都会减少,通常与ITIMER_VIRTUAL共用,代表进程在用户空间与内核空间中运行指定时间后,内核将发送SIGPROF信号给本进程。

itimerval结构体:

struct itimerval {

              struct timeval it_interval; /* next value */

              struct timeval it_value;    /* current value */

          };

其中timeval 结构体如前面所示。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读