`

我使用过的Linux命令之usleep - 延迟以微秒为单位的时间

阅读更多

我使用过的Linux命令之usleep - 延迟以微秒为单位的时间

本文链接:http://codingstandards.iteye.com/blog/1007783   (转载请注明出处)

 

用途说明

usleep命令用于延迟以微秒为单位的时间(sleep some number of microseconds),实际上达不到这个精度(Probably not accurate on many machines down to the microsecond.  Count on precision only to -4 or maybe -5.)。如果系统中没有usleep命令,可采用sleep命令来进行,sleep命令可以指定一个带小数的时间延迟。1秒=1000毫秒=1000,000微秒=1000,000,000纳秒。

常用方式

格式:usleep <us>

延迟<us>微秒。

 

使用示例

示例一 usleep命令精度测试

[root@jfht ~]# date +%S.%N; usleep; date +%S.%N
04.194798315
04.199352948
[root@jfht ~]# date +%S.%N; usleep; date +%S.%N
12.684509970
12.688986355
[root@jfht ~]# date +%S.%N; usleep 1000; date +%S.%N
33.179766926
33.186719087
[root@jfht ~]# date +%S.%N; usleep 10000; date +%S.%N
45.556317402
45.571467950
[root@jfht ~]# date +%S.%N; usleep 100000; date +%S.%N
59.656176597
59.761001631
[root@jfht ~]# date +%S.%N; usleep 1000000; date +%S.%N
56.700405298
57.704304279
[root@jfht ~]#

 

示例二 sleep命令精度测试

[root@jfht ~]# date +%S.%N; sleep 1; date +%S.%N       
47.111204217
48.115898894
[root@jfht ~]# date +%S.%N; sleep 0.1; date +%S.%N
57.760602228
57.865456080
[root@jfht ~]# date +%S.%N; sleep 0.01; date +%S.%N
08.912279911
08.927840798
[root@jfht ~]# date +%S.%N; sleep 0.001; date +%S.%N
18.171663617
18.176771668
[root@jfht ~]# date +%S.%N; sleep 0.0001; date +%S.%N
27.290651737
27.295785240
[root@jfht ~]#

 

问题思考

相关资料

【1】NIXway.net usleep (1) 命令参考
http://www.nixway.net/index.php?manitem&mid=2558
【2】LinuxSir.Org ubuntu中usleep命令不可用,要装哪个包呢?
http://www.linuxsir.org/bbs/showthread.php?t=315109

 

 

返回 我使用过的Linux命令系列总目录

 

1
4
分享到:
评论

相关推荐

    Linux 时钟 总结 HZ TICK 定时器

    它是衡量时间的一个基本单位,通常与HZ(每秒节拍数)配合使用。jiffies 的值随时间线性增长,可用于计算进程的运行时间、延迟以及其他时间相关操作。 **3.2 忙等延时** 忙等延时是指内核为了等待一定时间而执行空...

    VS2005程序到Linux的移植

    这种差异可能导致严重的时间延迟错误,因此,开发人员需替换此类函数,如使用`usleep`代替,后者参数为微秒。此问题强调了深入理解并测试移植代码的重要性,尤其是在处理时间敏感型任务时。 总结而言,从VS2005向...

    Linux系统开发笔记

    1. `sleep`函数用于延迟指定的秒数,`usleep`用于延迟微秒。 2. 内核编程中,`ndelay`、`udelay`和`mdelay`提供不同精度的延时功能。 3. 获取当前时间可使用`time`函数,转换成可读格式通常用`ctime`、`asctime`或`...

    Linux C 函数

    11. **`sleep()` 和 `usleep()`**: 延迟函数,`sleep()`以秒为单位,`usleep()`以微秒为单位。它们常用于程序中的等待或定时任务。 以上只是Linux C函数手册中的一部分内容,实际的手册会包含更多函数,如网络编程...

    linux serial port

    - **`sleep()` 和 `usleep()`**:这些函数用于实现毫秒级或微秒级的延迟。但是它们并不总是足够精确。 - **`nanosleep()`**:这个函数提供了更精确的纳秒级延迟控制。 ##### 4.2 测量时间 - **端口I/O延迟**:有...

    C语言8:用不同数据类型控制灯闪烁时间.rar

    C语言编程中,我们需要包含相应的头文件,比如在Linux环境下可能是`&lt;sys/io.h&gt;`或`&lt;linux/gpio.h&gt;`,并使用系统调用来配置GPIO引脚为输出模式,并设置其状态(高电平或低电平)以控制灯的开和关。 为了控制灯的闪烁...

    C语言编写的动态爱心代码.pdf

    在打印星号(*)时,程序利用ANSI转义序列来改变颜色,`\033[31m`设置为红色,`\033[0m`则恢复默认颜色,这样星号就会以红色显示,增加视觉效果。 `usleep(500000)`函数用于延迟执行,这里的参数是500000微秒,即...

    Microsecond delay(31KB)

    这种延迟功能通常通过操作系统提供的API函数(如Windows的Sleep函数或Linux的usleep函数)或者硬件定时器来实现。 描述中没有提供具体的技术细节,但我们可以推测这个31KB的文件可能是一个实现微秒延迟的源代码或...

    嵌入式计时器设计

    此外,了解其他时间相关的函数也很重要,如`clock_gettime()`用于获取当前系统时间,`sleep()`和`usleep()`用于延迟执行,以及`gettimeofday()`获取微秒级的时间戳。熟练掌握这些函数可以帮助你在设计计时器时实现更...

    Linux下模拟实现进度条实例详解

    3. **时间单位转换**:通常情况下,我们使用毫秒(ms)或微秒(μs)来表示程序执行的时间间隔。1秒等于1000毫秒,也等于1,000,000微秒。 #### 三、模拟进度条的基本思路 模拟进度条的基本思想是使用循环结构来不断更新...

    程序的代码

    7. `usleep()`函数:用于延迟线程执行,其参数是以微秒为单位的时间,控制游戏循环中蛇的移动速度。 8. **内存结构**:定义了`struct point`结构体来存储蛇的身体坐标,以及食物的位置。数组`SnakeBody`和变量`...

    Docker 容器日志分析

    `usleep`命令则默认以微秒为单位,1秒等于1000毫秒,等于1000000微秒。 通过以上知识点,我们可以了解到Docker容器日志管理的相关概念、方法和一些实践技巧。这些知识对于运维人员来说尤为重要,能够帮助他们高效地...

    c_delay.rar_4 3 2 1_c_delay_c语言延时1ms_delay 10_延时程序

    `c_delay.rar_4 3 2 1_c_delay_c语言延时1ms_delay 10_延时程序`这个压缩包文件包含了一些用C语言编写的延时程序,主要目的是为了实现不同时间单位的延迟,比如500毫秒、200毫秒、10毫秒和1秒。这些延时功能在控制...

    when

    8. **周期性任务**:`sleep()`函数可用于延迟程序执行,而`usleep()`则用于微秒级别的延迟。这些可以结合使用来实现简单的循环或定时任务。 9. **时间比较**:`DateTime::diff()`方法用于计算两个日期时间之间的...

    基于flush()不能按顺序输出时的解决办法

    `usleep()`函数用于添加微秒级别的延迟,以便让浏览器有时间接收和处理内容。 如果上述代码仍然不能按顺序输出,问题可能出在两个方面: 1. **编码设置**:确保浏览器和服务器之间使用的字符编码一致。在代码开始...

Global site tag (gtag.js) - Google Analytics