linux和windows下,C/C++的sleep函数

2023-05-16

简介:  函数名: sleep   功 能: 执行挂起一段时间   用 法: unsigned sleep(unsigned seconds);   在VC中使用带上头文件   #include <windows.h>   在gcc 编译器中,使用的头文件因gcc版本的不同而不同 linux系统需要添加的头文件  #include <unistd.h>

注意

  :   在 VC中Sleep中的第一个英文字符为大写的"S"   在 标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.   Sleep函数的一般形式:   Sleep(unisgned long);   其中, Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);    在Linux下,sleep中的“s”不大写

  sleep()里面的单位是秒,而不是毫秒。

linux下,用g++编译,得添加unistd.h头文件,gcc则加不加都可以,因为标准C中有sleep文件了。

  #include <windows.h>   int main()   {   int a;   a=1000;   Sleep(a);/* VC 使用Sleep*/   return 0;

  }

 

 

应用程序:
#include <syswait.h>
usleep(n) //n微秒
Sleep(n)//n毫秒
sleep(n)//n秒
驱动程序:
#include <linux/delay.h>
mdelay(n) //milliseconds 其实现
#ifdef notdef
#define mdelay(n) (\
{unsigned long msec=(n); while (msec--) udelay(1000);})
#else
#define mdelay(n) (\
(__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \
({unsigned long msec=(n); while (msec--) udelay(1000);}))
#endif
调用asm/delay.h的udelay,udelay应该是纳秒级的延时

Dos:
sleep(1); //停留1秒
delay(100); //停留100毫秒  
Windows:
Sleep(100); //停留100毫秒
Linux:
sleep(1); //停留1秒
usleep(1000); //停留1毫秒
每一个平台不太一样,最好自己定义一套跨平台的宏进行控制 

秒还是微秒?关于延时函数sleep()

    因为要写一段代码,需要用到sleep()函数,在我印象中,sleep(10)好像是休眠10微秒,结果却是休眠了10秒(在Linux下)。觉得很奇怪,因为头儿也记得好像是微秒为单位的。所以就查了一下。
    原来linux下的sleep函数原型为:
        unsigned int sleep(unsigned int seconds);
而MFC中的Sleep函数原型为:
        void Sleep(DWORD dwMilliseconds);
也就是说,Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。而MFC下的sleep()函数是以微秒为单位的,sleep(1000);才是休眠1秒。原来如此啊。而如果在Linux下也用微妙为单位休眠,可以使用线程休眠函数:void usleep(unsigned long usec);当然,使用的时候别忘记#include <system.h>哦。
    另外值得一提的是,linux下还有个delay()函数,原型为extern void delay(unsigned int msec);它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用 delay(250);

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux和windows下,C/C++的sleep函数 的相关文章

  • 捕获实时流量时如何开启纳秒精度?

    如何告诉 libpcap v1 6 2 将纳秒值存储在struct pcap pkthdr ts tv usec 而不是微秒值 捕获实时数据包时 Note This question is similar to How to enable
  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • 适用于 Python 的 GitLab CI 共享 Windows 运行器

    我在 GitLab 中有一个 python 项目仓库 我看到 GitLab 共享了可用的测试版 Windows 运行程序 请参阅this https about gitlab com blog 2020 01 21 windows shar
  • 为什么我可以在 /proc/pid/maps 输出中看到几个相同的段?

    测试在32位Linux上进行 代码如下 int foo int a int b int c a b return c int main int e 0 int d foo 1 2 printf d n d scanf d e return
  • Java - 使用 JNA 的 Windows 任务栏 - 如何将窗口图标 (HICON) 转换为 java 图像?

    我正在尝试将应用程序切换器添加到我正在处理的更大项目中 它需要在 Windows XP Vista 7 8 上运行 我正在使用 Java 1 7 下面是我创建的一个示例应用程序 用于演示我遇到的一些问题 我对 JNA 很陌生 非常感谢 充满
  • Windows批处理脚本启动程序并退出控制台

    我有一个用于启动程序的批处理脚本 例如notepad exe 当我双击这个批处理文件时 记事本正常启动 但是黑窗cmd谁发起的notepad exe仍然在后台 我需要做什么才能启动notepad exe并使cmd窗口消失 edit 比使用更
  • 当调用dll函数时,参数对象的成员变量的内存地址发生变化

    类某类 一些成员MemberClass one of the mem 我有一个函数foo SomeClass object 在 dll 中 它是从 exe 调用的 Problem 地址one of the mem 在调度 dll 调用期间发
  • WndProc调用机制(WinAPI)

    我试图了解 Windows 应用程序是如何工作的 有一个WndProc函数 其中发生消息处理 LRESULT CALLBACK WndProc HWND hwnd UINT msg WPARAM wParam LPARAM lParam s
  • 如何在 Windows 中创建上下文菜单子菜单?

    我一直在编写实用程序并通过 Shell 键 上的 Regedit 将它们映射到上下文菜单 但我不知道如何像一些更流行的实用程序那样创建子菜单 例如 如果我有三个脚本将文件移动和重命名到三个不同的文件夹 那么现在我有三个不同的上下文菜单条目
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • 如何从 C 程序中获取 NIC 详细信息?

    我想要获取连接到我的计算机的所有 NIC 的以下详细信息 1 接口名称 例如eth0 2 接口编号 如Windows http answers yahoo com question index qid 20080517041705AAOmJ
  • 如何在 Windows 上应用差异补丁?

    有很多程序可以创建差异补丁 但我在尝试应用一个程序时遇到了很大的困难 我正在尝试分发补丁 但用户向我询问了如何应用该补丁 于是我尝试自己弄清楚 结果发现我毫无头绪 而且我能找到的大多数工具都是命令行的 我可以处理命令行 但是如果没有一个漂亮
  • 使用 Windows 命令行将多行环境变量回显到文本文件

    我有一个环境变量 SSH PRIVATE KEY 并希望使用命令行将其打印到文件中 而不使用批处理文件 这是因为我需要在 Gitlab Ci yml 脚本中使用此文件 在 Linux 中 这很简单 echo SSH PRIVATE KEY
  • C# 中的 Unix 套接字

    我正在尝试使用 Mono 的 UnixEndPoint 但在使用它之前就失败了 我在 64 位 Windows 7 系统上运行 Xamarind net 4 5 下面是一些代码 证明单一组合不起作用 foreach SocketType s
  • 为进程设置环境变量

    环境变量的概念是什么 在 C 程序中 我需要调用可执行文件 该可执行文件将调用驻留在同一文件夹中的一些其他可执行文件 可执行文件依赖于两个环境变量 PATH 和 RAYPATH 的正确设置 我尝试了以下两件事 我创建了一个进程并在 Star
  • 如何在Windows命令行中执行for循环?

    我想知道这是否可能 我不熟悉使用 Windows 命令行 但我必须将它用于我正在处理的项目 我有许多文件 我需要为每个文件执行一个功能 我习惯使用 python 但显然这有点不同 所以我希望得到一些帮助 基本上 我需要 for 循环来迭代文
  • 是否有可能劫持标准输出

    我正在尝试使用 C 重定向 Windows XP 上已运行进程的标准输出 我知道如果我自己生成进程 我可以做到这一点 但对于这个应用程序 我更喜欢一个 监听器 我可以附加到另一个进程 这在纯 Net 中可能吗 如果不可能 在 Win32 中
  • 将 Azure 网站迁移到 Azure 云服务

    我有一个项目 我计划将 Web 应用程序作为 Azure 网站启动 然后将其迁移到 Azure 云服务 也称为托管服务 如果需要作为扩展策略 做出这个决定是因为我了解到 Azure 网站的开发更加简单 快速 几乎不需要特定于 Azure 的
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi

随机推荐

  • Linux 系统安全关键命令

    背景需求 Linux 因为其强大的处理能力和开源免费 xff0c 被广泛用于网关 实例链接 和服务器 实例链接 实际工作中 xff0c 保护 Linux 设备的安全成为产品设计的挑战 为此 xff0c 本文列出保护 Linux 系统安全的关
  • LoRa Server 运维常用命令

    背景需求 LoRa Server 是一个开源的 LoRaWAN 网络服务器 xff0c 它具备很多优点 xff1a 工程性 xff0c 模块化 xff0c 功能实现 xff0c 维护活跃度上都是其他项目无法比拟的 xff0c 它是 LoRa
  • 抗击新型冠状病毒肺炎,开源设计 LoRa 红外检测体温

    提示1 xff1a 锐米所有 LoRa 产品严格遵循国际标准的 LoRaWAN 协议 提示2 xff1a 您可以免费复制 xff0c 修改和商用本项目 xff0c 请注明锐米原创 提示3 xff1a 如果您有其他 LoRa 需求或建议 xf
  • AS--›Groovy/Gradle操作使用实例记录(持续更新)

    Groovy gradle 构建脚本使用的 groovy 语言编写 官方地址 http groovy lang org documentation html API文档地址 http groovy lang org api html API
  • 花 1 小时,开源设计 LoRa 烟感烟雾报警器

    提示1 xff1a 锐米所有 LoRa 产品严格遵循国际标准的 LoRaWAN 协议 提示2 xff1a 您可以免费复制 xff0c 修改和商用本项目 xff0c 请注明锐米原创 提示3 xff1a 如果您有其他 LoRa 需求或建议 xf
  • 花 1 小时,开源设计 LoRa 继电器开关

    提示1 xff1a 锐米所有 LoRa 产品严格遵循国际标准的 LoRaWAN 协议 提示2 xff1a 您可以免费复制 xff0c 修改和商用本项目 xff0c 请注明锐米原创 提示3 xff1a 如果您有其他 LoRa 需求或建议 xf
  • 为 LoRaWAN 节点和服务器配置 Class C,实现主动下行通信

    提示1 xff1a 锐米所有 LoRa 产品严格遵循国际标准的 LoRaWAN 协议 提示2 xff1a 如果您有其他 LoRa 需求或建议 xff0c 欢迎联系锐米 support 64 rimelink com 背景需求 在 LoRa
  • 花 1 小时,开源设计 LoRa GPS 定位器

    提示1 xff1a 锐米所有 LoRa 产品严格遵循国际标准的 LoRaWAN 协议 提示2 xff1a 您可以免费复制 xff0c 修改和商用本项目 xff0c 请注明锐米原创 提示3 xff1a 如果您有其他 LoRa 需求或建议 xf
  • 开源免费的手机版 LoRa App,演示和调试 LoRaWAN 数据的神器

    继 可配置数据解析格式的 LoRaAppDemo 64 C 应用工具 的PC工具之后 xff0c 为了帮助 LoRa 用户 演示数据和调试开发 xff0c 开源 xff0c 免费 xff0c 可安装在Android 手机的移动端App 一
  • 开源免费的 LoRa App 设计原理和组件

    为了帮助 LoRa 用户演示数据和调试开发 xff0c 开源免费的 LoRa App 推出后深受好评 下载与使用请链接 开源免费的手机版 LoRa App xff0c 演示和调试 LoRaWAN 数据的神器 https blog csdn
  • 如何测试 LoRaWAN 全球频段

    To be a sailor of the world bound for all ports 做世界的水手 xff0c 游遍所有的港口 背景 自 2015 年 LoRa 联盟创建 LoRaWAN 协议 xff0c 经过 7 年长跑 xff
  • LoRa Server@Ubuntu#2:一键安装

    LoRa Server 64 Ubuntu 2 xff1a 一键安装 LoRa Server 是一个开源的 LoRaWAN 网络服务器 xff0c 它具备很多优点 xff1a 工程性 xff0c 模块化 xff0c 功能实现 xff0c 维
  • 【转帖】VxWork介绍及编程

    VxWork介绍及编程 一 嵌入式操作系统VxWorks简介 VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统 xff08 RTOS xff09 xff0c 是嵌入式开发环境的关键组成部分 良好
  • 文件恢复

    对于广大电脑爱好者来说 xff0c 最担心的事莫过于数据损坏 xff08 丢失 xff09 了 xff0c 如果只是系统崩溃 xff0c 那么我们还可以重新安装 xff0c 所花费的只是时间而已 即使是硬件损坏 xff0c 也只是需要更换新
  • Kotlin--›Android RecyclerView滚动处理(滚动到底部/顶部/居中/偏移/动画等特性)

    之前写过一篇Android gt RecyclerView 显示底部 滚动底部 无动画 文章 当时是为了满足需求 没想太多顺手写的 虽然功能上能满足 但是代码上还是有点low 这几天 我的徒弟傻豆 在写一个IM项目 需要滚动到底部 于是我重
  • 数据恢复全解析

    原创 数据恢复全解析 文档提交 ionwing 提交时间 2005 7 1 11 00 44 原创作者 离子翼 离子翼信息安全实验室 http www ionwing com 当今的世界已经完全步入了信息时代 xff0c 在我们每天的生活当
  • 轻松打造xfce4轻快桌面

    我是这么作的 cd usr X11R6 etc xfce4 cp menu xml zh CN menu xml 右键菜单就是中文的了 可是我改了任何一个部分 xff0c 菜单就只剩一个点了 哪位大虾来指点指点 我将 LANG LC CTY
  • compress函数与uncompress函数

    compress函数与uncompress函数 zlib 是通用的压缩库 xff0c 提供了一套 in memory 压缩和解压函数 xff0c 并能检测解压出来的数据的完整性 integrity zlib 也支持读写 gzip gz 格式
  • 获取股票实时交易数据的方法

    获取股票实时交易数据的方法 注 xff1a 本文为原创文章 xff0c 转载时请注明转载地址 炒股有一段时间了 xff0c 发现现在的股票行情软件在很多情况下并不是太好用 xff0c 我炒股的时候喜欢看盘口的实时交易记录 xff0c 如果同
  • linux和windows下,C/C++的sleep函数

    简介 函数名 sleep 功 能 执行挂起一段时间 用 法 unsigned sleep unsigned seconds 在VC中使用带上头文件 include lt windows h gt 在gcc 编译器 中 xff0c 使用的头文