嵌入式学习——3——超时timeout

1、自带超时参数的函数

select自带超时

定义超时时间变量

struct timeval tv = {5, 0};

while(1) {

        tv.tv_sec = 5;

        tv.tv_usec = 0;

        int res = select(1, &readfds, NULL, NULL, &tv);

        .....

}

poll自带超时

1、poll函数的第三个参数,是以毫秒为单位的超时时间

2、当时间到达后,会接触阻塞,进而做相关事情

3、是一个整型变量,值传递

int res = poll(&pfd, 1, 5000);

2、setsockopt ---   SO_RCVTIMEO

//设置接收超时时间

struct timeval tv = {5, 0};

if(setsockopt(sfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv))==-1) {

        perror("setsockopt error");

        return -1;

}

3、alarm  ----  SIGALRM

#include <unistd.h>

unsigned int alarm(unsigned int seconds);

功能:设置一个定时器,在时间到达后,会发射一个SIGALRM的信号

参数:以秒为单位的时间, 如果参数设置成0,表示取消该定时器

返回值:如果该定时器之前没有定时器,则返回0,如果该定时器之前有定时器,会返回上一个定时器剩余的秒数,并更新上一个定时器为该定时器

关键词:alarm(5);     SIGALRM

void handle(int signo) {if (signo == SIGALRM) {printf("alarm\n");alarm(3);return;}
}
int main(int argc, char const *argv[]) {if (signal(SIGALRM, handle) == SIG_ERR) {printf("signal error\n");return -1;}alarm(3);while (1) {}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/13519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端vue用el-table如何实现表头内容过长换行处理,实现换行效果

前端vue用el-table如何实现表头内容过长换行处理&#xff0c;实现换行效果 这是效果图 有两种方法&#xff0c;一种简易版本&#xff0c;一种万能方法,都是el-table&#xff0c;先看文档 表头标题是可以自定义的 方法一 label的解释写在代码里面了&#xff0c;这里会自动形成换…

Python概述

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 了解Python Python&#xff0c;本义是指“蟒蛇”。1989年&#xff0c;荷兰人Guido van Rossum发明了一种面向对象的解释型高级编程语言&#xff0c;…

利用神经网络学习语言(六)——总结与常见面试问题

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 文章列表&#xff1a; 利用神经网络学习语言&#xff08;一&#xff09;——自然语言处理的基本要素利用神经网络学习语言&…

Java基础入门day49

day49 tomcat 启动 进入tomcat的bin目录&#xff0c;双击或者运行startup.bat文件启动tomcat 控制台最后出现服务器启动在多少毫米之内&#xff0c;代表服务器成功启动 org.apache.catalina.startup.Catalina.start Server startup in 405 ms 验证tomcat 在浏览器中输入 loca…

一次性计时器

Name: 一次性计时器 Copyright:No Author: 袁神派蒙 Date: 22/05/24 20:40 Description: 一次性的计时器&#xff08;by 袁神派蒙&#xff09; 直接上代码&#xff1a; /*Name: 一次性计时器 Copyright:No Author: 袁神派蒙Date: 22/05/24 20:40Description: 一次性的计时器…

[算法] 优先算法(二): 双指针算法(下)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …

基于transformers框架实践Bert系列6-完形填空

本系列用于Bert模型实践实际场景&#xff0c;分别包括分类器、命名实体识别、选择题、文本摘要等等。&#xff08;关于Bert的结构和详细这里就不做讲解&#xff0c;但了解Bert的基本结构是做实践的基础&#xff0c;因此看本系列之前&#xff0c;最好了解一下transformers和Bert…

自己动手写docker——Namespace

Linux Namespace linux Namespace用于隔离一系列的系统资源&#xff0c;例如pid&#xff0c;userid&#xff0c;netword等&#xff0c;借助于Linux Namespace&#xff0c;可以实现容器的基本隔离。 Namespce介绍 Namespace类型系统调用参数作用Mount NamespaceCLONE_NEWNS隔离…

Python筑基之旅-MySQL数据库(一)

目录 一、MySQL数据库 1、简介 2、优点 2-1、开源和免费 2-2、高性能 2-3、可扩展性 2-4、易用性 2-5、灵活性 2-6、安全性和稳定性 2-7、丰富的功能 2-8、结合其他工具和服务 2-9、良好的兼容性和移植性 3、缺点 3-1、对大数据的支持有限 3-2、缺乏全文…

微服务如何做好监控

大家好&#xff0c;我是苍何。 在脉脉上看到这条帖子&#xff0c;说阿里 P8 因为上面 P9 斗争失败走人&#xff0c;以超龄 35 被裁&#xff0c;Boss 上找工作半年&#xff0c;到现在还处于失业中。 看了下沟通记录&#xff0c; 沟通了 1000 多次&#xff0c;但没有一个邀请投递…

uniapp中使用 iconfont字体

下载 iconfont 字体文件 打开 iconfont.css 文件&#xff0c;修改一下 把文件 复制到 static/iconfont/… 目录下 在App.vue中引入iconfont 5. 使用iconfont 使用 iconfont 有两种方式&#xff0c; 一种是 class 方式&#xff0c; 一种是使用 unicode 的方式 5.1 使用 class 的…

【Mac】Dreamweaver 2021 for mac v21.3 Rid中文版安装教程

软件介绍 Dreamweaver是Adobe公司开发的一款专业网页设计与前端开发软件。它集成了所见即所得&#xff08;WYSIWYG&#xff09;编辑器和代码编辑器&#xff0c;可以帮助开发者快速创建和编辑网页。Dreamweaver提供了丰富的功能和工具&#xff0c;包括代码提示、语法高亮、代码…

51单片机学习(1)2-1点亮一个LED

#include <REGX52.H> void() { p20xFE;//1111 1110 while(1) { //让程序停了下来了。 } }

教你一分钟搭建适合IT人员的在线开发工具箱

文章目录 1. 使用Docker本地部署it-tools2. 本地访问it-tools3. 安装cpolar内网穿透4. 固定it-tools公网地址 本篇文章将介绍如何在Windows上使用Docker本地部署IT- Tools&#xff0c;并且同样可以结合cpolar实现公网访问。 在前一篇文章中我们讲解了如何在Linux中使用Docker搭…

Anaconda Jupyter 报错及解决方法记录

一、AttributeError: module lib has no attribute X509_V_FLAG_CB_ISSUER_CHECK 背景&#xff1a;Anaconda更新版本后&#xff0c;运行import oss2时报错 ~/anaconda3/lib/python3.8/site-packages/OpenSSL/crypto.py in X509StoreFlags() 1535 NOTIFY_POLICY _lib…

【Java基础】集合(1) —— Collection

存储不同类型的对象: Object[] arrnew object[5];数组的长度是固定的, 添加或删除数据比较耗时 集合: Object[] toArray可以存储不同类型的对象随着存储的对象的增加&#xff0c;会自动的扩容集合提供了非常丰富的方法&#xff0c;便于操纵集合相当于容器&#xff0c;可以存储多…

探索Git之旅:仓库代码版本控制艺术

探索Git之旅&#xff1a;仓库代码版本控制艺术 引言Git基础与核心概念什么是版本控制&#xff1f;Git的工作流程分布式特性 Git实战操作指南安装与配置克隆仓库日常操作分支管理解决冲突 高级技巧与最佳实践Git FlowGit钩子Git别名 安全与性能考量结语与引发讨论 引言 在软件开…

冯喜运:5.16黄金是否突破阻力?黄金原油趋势分析

【黄金消息面分析】&#xff1a;周四(5月16日)亚市盘中&#xff0c;现货黄金延续昨日升势&#xff0c;金价目前最高触及2397.44美元/盎司&#xff0c;为4月19日以来新高。FXStreet首席分析师Valeria Bednarik撰文&#xff0c;对黄金技术前景进行分析。Bednarik指出&#xff0c;…

「51媒体」北京财经媒体有哪些?媒体邀约宣传

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 北京作为中国的首都&#xff0c;拥有众多的财经媒体&#xff0c;这些媒体在财经新闻报道、经济分析、市场研究等方面发挥着重要作用。根据搜索结果&#xff0c;以下是一些北京地区的财经…

富格林:曝光虚假套路规避亏损

富格林指出&#xff0c;在现货黄金市场中&#xff0c;交易时间很充足投资机会也多的是&#xff0c;但为什么还是有人亏损甚至爆仓呢&#xff1f;其实导致这种情况&#xff0c;是因为有一些投资者不知道其中的虚假套路&#xff0c;很容易就一头栽进去了。要规避虚假套路带来的亏…