做网站运营有前途,wordpress 链接 插件,网站设计与网站开发是同时进行的,做优化的网站电话/*#include unistd.hunsigned int alarm(unsigned int seconds);功能#xff1a;设置定时器。函数调用#xff0c;开始倒计时#xff0c;0的时候给当前的进程发送SIGALARM信号参数#xff1a;倒计时的时长。。单位#xff1a;秒 如果参数为0#xff0c;无效返回…/*#include unistd.hunsigned int alarm(unsigned int seconds);功能设置定时器。函数调用开始倒计时0的时候给当前的进程发送SIGALARM信号参数倒计时的时长。。单位秒 如果参数为0无效返回值倒计时剩余的时长-之前没有定时器返回0-之前有定时器返回之前的定时器剩余的时间SIGALARM默认终止当前的进程每一个进程有且仅有唯一的定时器函数不阻塞
*/
#includestdio.h
#includeunistd.h
int main() {int second alarm(5);printf(seconds %d\n, second);sleep(2);second alarm(2);printf(seconds %d\n, second);while(1){}return 0;
}
后面新设的定时器会取代老的定时器
定时与进程的状态无关无论进程是阻塞挂起就绪运行定时器都是自己玩自己的 setitimer函数
/*#include sys/time.hint setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);功能设置定时器闹钟。可以替代alarm函数。精度微秒可以实现周期性的定时。参数-which:定时器以什么方式计时-ITIMER_REAL真实时间时间到达发送SIGALRM 常用-ITIMER_VIRTUAL用户时间时间到达发送SIGVTALRM-ITIMER_PROF一该进程在用户态和内核态下所消耗的时间来计算时间到达发送SIGPROF信号-new_value设置定时器的属性struct itimerval {struct timeval it_interval; 每个阶段的倒计时时长struct timeval it_value; 延迟多长时间执行定时器};struct timeval {time_t tv_sec; 秒数suseconds_t tv_usec; 微秒};-old_value记录上次定时的时间参数返回值成功0 失败-1
*/
#include sys/time.h
#includestdio.h
#includeunistd.hint main() {struct itimerval new_value;new_value.it_interval.tv_sec 2;new_value.it_interval.tv_usec 0;new_value.it_value.tv_sec 3;new_value.it_value.tv_usec 0;int ret setitimer(ITIMER_REAL, new_value, NULL);printf(开始\n);if(ret -1) {perror(ret);return 0;}while(1) {printf(1\n);sleep(1);}return 0;
}
延迟三秒开始执行就会立马发送信号然后每隔两秒发送一次