linux與windows下C++的sleep函式

jimmy1357發表於2013-11-23

隨便寫了個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秒又工作了^_^

相關文章