C语言中的sleep()

C语言中的sleep()

  • sleep()在windows和linux下是两个不同的函数,差别较大,
    • 但功能相同,都是将进程挂起一段时间。
  • windows下函数名为Sleep(),
    • 其函数原型为:
    • #include <windows.h>
    • void Sleep(DWORD dwMilliseconds); 参数为毫秒

\newline
\newline

#include <windows.h> //win头文件
#include<stdio.h>
int main()
{
    int i;
    printf("你");
    fflush(stdout); //强制刷新缓存,输出显示
    for( i=0;i<10;i++ )
    {
        Sleep(1000);    /* windows 使用Sleep,参数为毫秒 */
        printf(".");
        fflush(stdout);//强制刷新缓存,输出显示
    }
    printf("好\n");  /*输出“你”和“好”之间会间隔10秒,并输出10个点*/
    return 0;
}

里纳克斯

  • linux下函数名sleep()
  • #include <unistd.h>
  • unsigned int sleep(unsigned int seconds);参数为毫秒 (更精确用usleep,微秒)

\newline
\newline

#include <unistd.h>  //1、linux 头文件
#include<stdio.h>
int main()
{
    int i;
    printf("你");
    fflush(stdout);//强制刷新缓存,输出显示
    for( i=0;i<10;i++ )
    {
        sleep(1);       /*2、linux 使用sleep,参数为秒*/
        printf(".");
        fflush(stdout);//强制刷新缓存,输出显示
    }
    printf("好\n"); /*输出“你”和“好”之间会间隔10秒,并输出10个点*/
    return 0;
}

2th plagiarism

  • 功 能: 执行挂起一段时间
  • VC中带上<windows.h>
  • Linux下,gcc编译器中,头文件因gcc版本的不同而不同
    • #include <unistd.h>
  • 在VC中,大写"S" ,
    • linux下不要大写,在标准C中是sleep
    • 简单的说VC用Sleep, 别的一律用sleep。
  • VC中,Sleep()毫秒单位
  • Linux下,sleep()里面的单位是秒
    • 不确定啊

\newline
\newline

  • usleep
  • 把进程挂起一段时间, 单位us(百万分之一秒)
  • void usleep(int micro_seconds);
    • 且此函数已被废除,可用nanosleep。
    • 这个函数不能工作在 Windows中。
    • 与sleep()类似,用于延迟挂起进程。
    • 进程被挂起放到reday queue。
  • 延迟时间数量级是秒的时候,尽可能用sleep()
  • 如果延迟时间为几十毫秒,或更小,用usleep()。
    • 这样才能最佳的利用CPU时间。

\newline
\newline

  • delay函数:
  • 将程序的执行暂停一段时间,单位ms
  • void delay(unsigned milliseconds);
  • delay()是循环等待,该进程还在运行,占处理器
  • sleep()不同,它会被挂起,把处理器让给其他的进程
发布了447 篇原创文章 · 获赞 249 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/zhoutianzi12/article/details/103438079
今日推荐