linux与windows下C++的sleep函数

来源:互联网 发布:淘宝订单自检不清洗 编辑:程序博客网 时间:2024/05/17 08:30

随便写了个c代码,想在Linux下编译运行:

[dennischen@lxw12 dennischen]$ cd work
[dennischen@lxw12 work]$ cat sleep.c
#include <stdio.h>
main()
{
        int flag =100;
        for(;flag>0;flag--)
        {
                printf("Hello guys,I am sleeping!^_^\n");
                printf("Do u want to join me?\n");
                sleep(30000);
        }
}
[dennischen@lxw12 work]$

可以看到很简单的一个sleep.c代码:
#include <stdio.h>
main()
{
        int flag =100;
        for(;flag>0;flag--)
        {
                printf("Hello guys,I am sleeping!^_^\n");
                printf("Do u want to join me?\n");
                sleep(30000);
        }
}
我们知道在windows编程中
函数原形:
VOID Sleep( DWORD dwMilliseconds );
参数:
dwMilliseconds
[输入] 指定一个时间间隔,单位毫秒, 用于挂起线程的时间。
所以我想我的程序应该是睡个30秒就复苏
谁知等了半天没有响应

所以就怀疑sleep函数是不是头文件没有加?可是没有报错,所以应该没有问题的
再想,是不是sleep函数在linux中和windows中的定义不同了。
。。。。
printf("Stop now for 5 seconds\n");
sleep(5);
printf("I`m still alive");


在Linux中sleep函数的参数的单位是秒
修改为:
#include <stdio.h>
main()
{
        int flag =3;
        for(;flag>0;flag--)
        {
                printf("Hello guys,I am sleeping!^_^\n");
                printf("Do u want to join me?\n");
                sleep(30);
        }
}
这样就可以好好睡上30秒又工作了^_^