当前位置: 首页 > news >正文

定时器 POSIX Timer定时器和setitimer定时器

POSIX 可移植

POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX 。

POSIX Timer C API

总结POSIX系统的C标准库:

函数描述
clock_settime()通过指定Value设置clock的分辨率
clock_gettime()获取时钟值
timer_settime()设置和装备或者解除一个定时器
timer_gettime()
timer_create()创建一个POSIX预处理的定时器
timer_delete()删除一个定时器
clock_getres()获取时钟分辨率
timer_getoverrun()获取当前超时的定时器的计数
nanosleep()高分辨率延时当前线程

timer_create()

创建一个POSIX预处理的定时器。

语法

#include <signal.h>
#include <time.h>

描述

timer_create()创建一个新的间隔预处理定时器。参数timerid在一个buffer指针返回一个型的定时器ID,必定是一个非空的指针。ID在进程里是唯一的,直到定时器被清除。新的定时器是初始化解除的。
clockid参数指定新的定时器时钟去测量定时。它能够指定下述其中一个值:

参数值描述
CLOCK_REALTIME一个可设置的系统级的实时时钟。
CLOCK_MONO

clock_settime()和clock_settime()

时钟和时间函数

语法

#include <time.h>
int clock_getres(clockid_t clk_id, struct timespec *res);
int clock_gettime(clockid_t clk_id, struct timespec *tp);
int clock_settime(clockid_t clk_id, const struct timespec *tp);

描述

clock_getres()函数寻找指定时钟clk_id的分辨率。如果res不为NULL,通过res指针存储到结构timespec里。
时钟的分辨率取决于指定的进程执行,而不能通过配置。如果参数 tp 的 clock_settime() 指向的时间值不是 res 的倍数,则它将被截断为 res 的倍数。

setitimer定时器

getitimer和setitimer定时器 获取或者设置内部定时器的值。

语法

#include <sys/time.h>
int getitimer(int which, struct itimerval *curr_value);
int setitimer(int which, const struct itimerval *new_value,struct itimerval *old_value);

描述

这个系统调用提供访问内部定时器,并初始化一些点调用,和可调内部值。当定时器到期时,调用晶灰层产生一个信号,和定时器重置到指定的时间间隔。
指定三个类型定时器结果提供的参数,每个计数器不支持不同的时钟和当时钟到期,生成一个不同的信号:

which选项描述
ITIMER_REAL在real time(当前系统时间)下,定时器计数。在每个定时器到期时,生成一个SIGALRM信号。
ITIMER_VIRTUAL此计时器根据进程消耗的用户模式 CPU 时间进行倒计时,当每一个时间到期,产生一个SIGBTALRM信号。
ITIMER_PROF这个根据进程消耗总的(包括用户和系统)CPU时间进行倒计时。每个时间到期,产生一个SIGPROF信号。

一个进程只能有三种类型定时器其中的一种。

定时器的值定义通过下述结构体:

struct itimerval{struct timeval it_interval;	/* 周期性定时器的时间间隔 */struct timeval it_value;		/* 定时直到下一个周期为止 */
}
struct tiemval{time_t tv_sec;				/* 秒 */suseconds_t tv_usec;	/* 微妙 */
}

settimer()
函数setitimer()装载或者解除通过指定的which定时器,通过设置new_value指定定时器值。如果old_value是non-NULL,buffer指向前先使用过的返回定时的值。如果两个场都是new_value.itval为0,定时器将被解除。

new_value.it_interval区域指定定时器的新的间隔值;如果两个子场都是零,定时器将一次生效。

返回值

成功返回0.错误返回-1,并适当设置errno.

相关文章:

定时器 POSIX Timer定时器和setitimer定时器

POSIX 可移植 POSIX&#xff1a;可移植操作系统接口&#xff08;Portable Operating System Interface of UNIX&#xff0c;缩写为 POSIX 。 POSIX Timer C API 总结POSIX系统的C标准库&#xff1a; 函数描述clock_settime()通过指定Value设置clock的分辨率clock_gettime()…...

DeSD:用于3D医学图像分割的深度自蒸馏自监督学习

文章目录 DeSD: Self-Supervised Learning with Deep Self-Distillation for 3D Medical Image Segmentation摘要本文方法Deep Self-DistillationDownstream Transfer Learning 实验结果 DeSD: Self-Supervised Learning with Deep Self-Distillation for 3D Medical Image Seg…...

MySQL数据库——MySQL创建触发器(CREATE TRIGGER)

触发器是与 MySQL 数据表有关的数据库对象&#xff0c;在满足定义条件时触发&#xff0c;并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 在 MySQL 5.7 中&#xff0c;可以使用 CREATE TRIGGER 语句创建触发器。 语法格…...

Java实现网上人才招聘系统【附源码】

网上人才招聘系统 1、概述 3 2、系统分析 4 2.1、问题定义 4 2.2、可行性研究 4 2.2.1、可行性需求分析 4 2.2.2、数据流分析 5 2.2.3、数据字典 6 2.2.4、程序流程图 6 2.2.4、开发进度计划 6 2.3、需求分析 7 2.3.1、功能需求分析 7 2.3.2、数据需求分析 10 2.3.3、性能需求…...

jmeter接口测试项目实战详解,零基础也能学,源码框架都给你

目录 1.什么是jmeter&#xff1f; 2.jmeter能做什么&#xff1f; 3.jmeter环境搭建 3.1前提&#xff1a; 3.2jmeter下载&#xff1a; 3.3jmeter环境搭建&#xff1a; 3.3.1mac当中jmeter环境搭建&#xff1a; 3.4jmeter基本配置 3.4.1.切换语言 3.4.2.安装插件 4.jmet…...

MySQL中去重 distinct 和 group by 是如何去重的

1&#xff1a;测试数据 CREATE TABLE student (stu_no VARCHAR(40) NOT NULL,name VARCHAR(100) NOT NULL );insert into student values(1,name1); insert into student values(2,name2); insert into student values(3,name1); insert into student values(4,name2); i…...

在职读研是理想还是情怀?你想要的都将在社科大能源管理硕士项目实现

在职读研是理想还是情怀呢&#xff0c;每个读研人的想法不同&#xff0c;原因也有所不同。但选择在职继续攻读硕士学位的群体也有着共同点&#xff0c;他们都是想拥有高学历&#xff0c;拥有高目标的一群人。探寻新的起点和终点是他们想所要追求的。不管读研的初心是什么&#…...

携手共建数字钢铁,Hightopo亮相第三届钢铁展洽会

4 月 26 日备受期待的第三届钢铁展洽会在日照盛大召开。图扑软件作为智慧钢铁行业领先的 2D 和 3D 图形界面可视化解决方案提供商&#xff0c;受邀参与此次展会。 图扑软件携智慧钢铁三维可视化监控体系亮相“钢铁展洽会”&#xff0c;向众多钢铁企业展示了一系列图扑 HT 数字…...

Leetcode2383. 赢得比赛需要的最少训练时长

Every day a Leetcode 题目来源&#xff1a;2383. 赢得比赛需要的最少训练时长 解法1&#xff1a;模拟 可以分开考虑在比赛开始前&#xff0c;需要最少增加的精力和经验数量。 每次遇到一个对手&#xff0c;当前精力值都需要严格大于当前对手&#xff0c;否则需要增加精力值…...

js代码执行过程、调用栈、执行上下文

参考资料 极客时间课程《浏览器工作原理与实践》 – 李兵 一、js代码执行过程 &#xff08;一&#xff09;javascript代码的执行流程 浏览器执行javascript代码的流程如下图所示&#xff1a; javascript的执行机制是&#xff1a;先编译&#xff0c;再执行。在编译阶段生成了…...

互联网摸鱼日报(2023-05-12)

互联网摸鱼日报&#xff08;2023-05-12&#xff09; InfoQ 热门话题 建设和改进持续业务交付能力&#xff5c; BizDevOps 公开课 一部手机就可运行&#xff0c;精通Python等20种语言&#xff01;谷歌终于能与OpenAI 打擂台了&#xff0c;全新PaLM 2比肩GPT-4 蚂蚁数科开发者…...

【Python从入门到实践3.1】扑克发牌知识点(range函数,def函数,else语句配合使用,random库,列表推导式)

扑克发牌知识点 range函数def函数else语句配合使用&#xff1a;random库列表推导式 本篇博文需要特别感谢"Python从入门到精通"课程中一位同学对扑克发牌程序做出的知识点分析,本博文的内容大多也是从这位同学的分析而来. range函数 Range()函数&#xff1a; *返回一…...

Spring Cloud第二季--Spring Cloud Bus

文章目录 Spring Clud Bus什么是总线基本原理 牛刀小试 Spring Clud Bus 在Spring Cloud学习–配置中心&#xff08;Config&#xff09;中实现了集中管理微服务配置、不同环境不同配置、运行期间也可动态调整、配置修改后可以自动更新的需求&#xff0c;但同时也有一个弊端&am…...

Unittest自动化测试之unittestunittest_生成测试报告

unittest_生成测试报告 测试报告为测试结果的统计即展示&#xff0c;是自动化测试不可或缺的一部分&#xff0c;利用unittest 可以生成测试报告 方式一、使用第三方 HTMLTestRunner 执行测试用例集&#xff0c;生成网页版测试报告&#xff08;推荐&#xff09; HTMLTestRunn…...

一个查询IP地理信息和CDN提供商的离线终端工具

Nali 功能 支持多种数据库 纯真 IPv4 离线数据库ZX IPv6 离线数据库Geoip2 城市数据库 (可选)IPIP 数据库 (可选)ip2region 数据库 (可选)DB-IP 数据库 (可选)IP2Location DB3 LITE 数据库 (可选) CDN 服务提供商查询支持管道处理支持交互式查询同时支持IPv4和IPv6支持多语言…...

RflySim平台使用篇 | Rflysim3D软件使用系列教程(二)

导读: RflySim3D&#xff08;支持体验版&#xff09;和RflySimUE5&#xff08;支持完整版&#xff09;为本平台核心三维显示软件&#xff0c; 分别基于UE4 和UE5 引擎开发&#xff0c;具备高逼真虚拟现实显示效果。本视频主要讲解了如何将自定义的三维场景如何加载到RflySim3D…...

2023 年第五届河南省 CCPC 大学生程序设计竞赛

题目地址 题目PDF地址 题解地址 Problem A. 小水獭游河南 ∣ a ∣ ≤ ∣ Σ ∣ 26 &#xff0c;暴力枚举 a 判断 b 是否为是回文串即可&#xff0c;时间复杂度 O ( ∣ Σ ∣ ∣ s ∣ ) 。 |a| ≤ |Σ| 26&#xff0c;暴力枚举 a 判断 b 是否为是回文串即可&#xff0c;时间…...

nginx liunx最新版本安装flask部署

一、nginx安装 1.进入Nginx官网的资源下载页&#xff1a;http://nginx.org/en/download.html 2.下载nginx-1.22.1.tar.gz&#xff0c; 3解压&#xff1a; tar -zxvf nginx-1.22.1.tar.gz解压完成后会在当前目录下得到一个新的nginx文件夹 4.终端进入nginx文件夹目录&#x…...

热图 -- pheatmap or ggplot2

文章目录 brief数据准备 pheatmap实例最朴素的方式数据缩放取消聚类更改每个小方格的大小聚类以及聚类方式和参数修改热图呈现的颜色修改legend ggplot2实例ggplot2实例变式添加 group bar做成dotplot pheatmap 多图组合问题 brief 这里主要记录了pheatmap 以及 ggplot2实现热…...

EIScopus检索 | 2023年智能交通与未来出行国际会议(CSTFM 2023)

会议简介 Brief Introduction 2023年智能交通与未来出行国际会议(CSTFM 2023) 会议时间&#xff1a;2023年7月28日-30日 召开地点&#xff1a;中国长沙 大会官网&#xff1a; CSTFM 2023-2023 International Conference on Smart Transportation and Future Mobility(CSTFM 202…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...