2.21 alarm函数 2.22setitimer定时器函数

news/2024/11/25 19:32:24/

2.21 alarm函数

#include <unistd.h>
unsigned int alarm(unsigned int seconds);
  • 功能:设置定时器(闹钟)。函数调用,开始倒计时,当倒计时为0的时候,
    函数会给当前的进程发送一个信号:SIGALARM

  • 参数:
    seconds: 倒计时的时长,单位:秒。如果参数为0,定时器无效(不进行倒计时,不发信号)。取消一个定时器,通过alarm(0)。

  • 返回值:
    - 之前没有定时器,返回0
    - 之前有定时器,返回之前的定时器剩余的时间

  • SIGALARM :默认终止当前的进程,每一个进程都有且只有唯一的一个定时器。
    alarm(10); -> 返回0,之前没有定时器
    过了1秒
    alarm(5); -> 返回9,返回之前的定时器剩余的时间

    alarm(100) -> 该函数是不阻塞的,可以继续执行其他的代码

#include <stdio.h>
#include <unistd.h>int main() {int seconds = alarm(5);printf("seconds = %d\n", seconds);  // 0sleep(2);seconds = alarm(2);    // 不阻塞printf("seconds = %d\n", seconds);  // 3//while循环的目的是,过了两秒后,倒计时为0时,函数会给当前的进程发送一个信号:SIGALARM,默认终止当前的进程。while(1) {}return 0;
}

最终效果:
在这里插入图片描述

1秒电脑能数多少个数?

// 1秒钟电脑能数多少个数?
#include <stdio.h>
#include <unistd.h>/*实际的时间 = 内核时间(系统调用) + 用户时间(普通代码执行) + 消耗的时间(IO操作)进行文件IO操作的时候比较浪费时间定时器,与进程的状态无关(自然定时法)。无论进程处于什么状态,alarm都会计时。
*/int main() {    alarm(1);int i = 0;while(1) {printf("%i\n", i++);}return 0;
}

2.22setitimer定时器函数

在这里插入图片描述

#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>// 过3秒以后,每隔2秒钟定时一次
int main() {struct itimerval new_value;// 设置间隔的时间new_value.it_interval.tv_sec = 2;new_value.it_interval.tv_usec = 0;// 设置延迟的时间,3秒之后开始第一次定时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("setitimer");exit(0);}getchar();return 0;
}

http://www.ppmy.cn/news/337039.html

相关文章

【实战】体验训练Geneface

一.环境 conda activate geneface export PYTHONPATH./ CUDA_VISIBLE_DEVICES0 python tasks/run.py --configegs/datasets/lrs3/lm3d_syncnet.yaml --exp_namelrs3/syncnet 训练这篇出过的一些奇奇怪怪的问题基本上都记录在【环境搭建】40系一些奇奇怪怪的环境问题_weixin_50…

达人评测 i9 12900H和i5 12500h选哪个

i5 12500H为4大核8小核&#xff0c;12核心16线程设计&#xff0c;CPU主频 2.5GHz 最高睿频 4.5GHz 三级缓存为18MB 功耗(TDP) 45W.选 i5 12500H还是i9 12900H这些点很重要 http://www.adiannao.cn/dy i9 12900H采用7nm 制作工艺14核心20线程&#xff0c;主频为2.5GHz&#xff0…

大数据营销【3】

1.大数据获取的个人信息比传统调研获得的个人信息真实性 A.更低 B.更高 C.相同 D.不确定 2.分类变量使用&#xff08;&#xff09;建立预测模型 A.分类树 B.回归树 C.决策树 D.离散树 3.面向用户提供大数据一站式部署方案&#xff0c;包括数据中心和服务器等硬件、数据分析…

重磅推荐 | 孩子学习神器,双十二必买好物

受疫情黑天鹅的影响&#xff0c;线上智慧教学突飞猛进发展。专业、高效的特点带给学生不输于传统线下教育的感受&#xff0c;不少人对智慧教育的看法有所改观。但还是有不少家长认为教育线上化比传统教育缺乏了线下课堂教育的强制性&#xff0c;认为实用性并不高。可在疫情爆发…

程序设计竞赛推荐两本实用书给你

1 什么是程序设计竞赛 本书所指的程序设计竞赛是解题竞赛&#xff0c;指参赛者利用自己所学的计算机相关知识&#xff0c;在限定的时间内解决若干道具有一定难度的编程题目。这些题目一般都与某种算法有关&#xff0c;如果读者没有经过相关的训练&#xff0c;一般难以在限定时…

计算机管理下的打印机参数设置,提高办公效率 11种方法设置打印参数

提高办公效率 11种方法设置打印参数 发布时间:2012-03-12 23:44:45 作者:佚名 我要评论 每当对打印参数进行设置时,许多人都会将目光聚焦在页面设置上,或者打印纸张的选型上,而其他一些打印参数由于很少用到,因此常常会容易被人忽视掉;其实这些不常用的打印参数里隐…

RK3588平台开发系列讲解(USB篇)Linux Android USB软件架构

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、高通平台USB软件架构二、USB 设备侧软件组成2.1、OTG driver2.2、Device controller driver2.3、Gadget framework2.4、Function drivers三、USB 主机侧软件3.1、Host controller driver3.2、USB core3.3、USB PHY…

华大单片机HC32L130J6TA入坑全纪录(二)——关于SWD下载的问题

华大的烧写程序电路部分&#xff0c;这部分一定要预留两个电路&#xff1a; 1.串口烧录的MODE选择电路,PD3下拉10K和跳线帽连接3V3。 2.UART下载电路,预留排针焊口。 因为&#xff1a; SWD烧录&#xff0c;如果需要加密的话&#xff0c;加密烧录之后&#xff0c;SWD就废了!…