linux c下几种定时器实现

1、alarm
只发出一种信号给自己
2、setitimer
可以发出3种信号给自己,
3、timerfd
这个接口基于文件描述符,通过文件描述符类似epoll那种的可读事件进行超时通知,能够被用于select/epoll/poll的应用场景,linux内核2.6.25版本及以上版本使用
4、利用服务器while(true) epoll_wait等短暂阻塞,无限循环,来检查event队列,超时就执行,来实现定时效果
另外有一点 epoll_wait 会被SIGALRM中断,返回EINTR错误

时间: 2024-10-11 17:11:46

linux c下几种定时器实现的相关文章

LInux下几种定时器的比较和使用

在数据通信过程中,会遇到对数据发送时间的格式要求.所以要在应用中根据实际要求选择不同的定时器,就要考虑到几种应用定时器的特点. 定时器文章参考 一般而言有, 1.sleep,usleep和nanosleep sleep()和nanosleep()都是使进程睡眠一段时间后被唤醒,但是二者的实现完全不同.Linux中并没有提供系统调用sleep(),sleep()是在库函数中实现的,它是通过调用alarm()来设定报警时间,调用sigsuspend()将进程挂起在信号SIGALARM上,sleep(

linux环境下玩转截图

当习惯了使用linux环境处理事务时,总少不了截图的需求.windows环境下有各种截图工具方便大家进行截图处理,那么linux环境下都有哪些截图方式或工具呢?这里就给大家盘点一下linux环境下几种截图方式: (1)使用键盘功能键Print Screen或Alt+Print Screen组合键来抓图 这种方式当属最简单的截图方式,可以借助Print Screen截取整个屏幕或Alt+Print Screen组合键来抓取当前活动窗口界面.但当想抓取更具体界面(如terminal的某一部分)时,这

linux下几种常见安装方式

linux下几种常见的安装方式:1:rpm包安装(二进制安装)    安装---   rpm -ivh +安装包包名 2:tar包安装(源码安装)    安装---   tar zxvf(解压)---./configure(配置,编译前准备)---make(编译)---make install(安装)此过程中./configure后可以指定安装路径,也可不指定,不指定的话就类似于windows下的默认安装 3:yum安装(自动解决依赖关系)    安装---   yum install

Linux下几种文件传输命令

Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性.在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看文件列表等操作).Sftp与ftp虽然只有一字之差,但基于

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

Linux 下三种方式设置环境变量

1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变量?简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件. 设置变量对于一般人最实用的功能就是: 不用拷贝某些dll文件到系统目录中了,而path 这一系统变量就是系统搜索dll文件的一系列路径 在Linux系统下,如果你下载并安装应用程序,很有可能在键入它的名称的时候出现

linux环境下验证码不显示的几种情况

linux环境下验证码不显示的几种情况 gd库扩展没有安装. 查看phpinfo(),看看有没有安装gd库 yum安装gd库或者phpize安装 安装完成后记得重启php-fpm bom头的原因 在生成验证码的脚本前加上ob_clean nginx不支持pathinfo的原因 如果你查看你的console出现404错误.那是因为nginx不支持pathinfo造成的 location ~ \.php { root H:/PHPServer/WWW; #项目目录  fastcgi_pass 127

[原创] Linux下几种文件传输命令 sz rz sftp scp介绍

Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性.在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看文件列表等操作).Sftp与ftp虽然只有一字之差,但基于的传输协议却是不同的.因此不能用sftp client去连

linux系统下php安装mbstring扩展的二种方法

.执行 复制代码代码如下: yum install php-mbstring 2. 修改php.ini (这一步非常重要, 部分lxadmin版本无法自动修改) 复制代码代码如下: echo ‘extension=mbstring.so' >>/etc/php.ini #更具php安装目录而定 3. 重启web service 如果是apache: service httpd restart 方法二:php 5.36安装目录:/usr/local/php 复制代码代码如下: #cd /usr/