linuxsleep的頭文件
1. 小技巧之查看linux系統函數頭文件
分享一個小技巧。
我們在寫Linux應用程序時,有時候記不清某個系統函數的頭文件,往往要麼網路,要麼查源碼,這樣做都不方便,費時費力。
其實,可以用一個命令搞定:man。
比如,我要查sleep函數的頭文件,在終端下敲命令: man sleep ,輸出信息:
並沒有發現頭文件!但是,請看紅框里的內容,意思是當前顯示的只是sleep手冊的第1頁,還有第3頁可以參考,繼續輸命令 man 3 sleep ,輸出信息:
看紅框中的內容,是不就看到sleep函數的頭文件及函數原型定義了!
查看read函數頭文件,同樣的,輸入 man read ,直接可以查到:
是不是很方便啊!!!
2. c語言中的sleep() 函數
使用要帶上頭文件:
#include <windows.h>
Sleep函數:
功 能: 執行掛起一段時間
用 法: unsigned sleep(unsigned seconds);
注意:
1.在VC中使用帶上頭文件#include <windows.h>,在Linux下,gcc編譯器中,使用的頭文件因gcc版本的不同而不同#include <unistd.h>
2.在VC中,Sleep中的第一個英文字元為大寫的"S" ,在linux下不要大寫,在標准C中是sleep, 不要大寫,簡單的說VC用Sleep, 別的一律使用sleep。
3.在VC中,Sleep()裡面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000); 在Linux下,sleep()裡面的單位是秒,而不是毫秒。
示例:
#include<dos.h>
int main(void)
{
sound(440);
delay(500);
nosound();
return 0;
}
delay()是循環等待,該進程還在運行,佔用處理器。
sleep()不同,它會被掛起,把處理器讓給其他的進程。
3. linux 的sleep()、usleep()、nanosleep()函數
原文地址: https://blog.csdn.net/weibo1230123/article/details/79139476
sleep()非系統調用,sleep()是在庫函數中實現的,它是通過alarm()來設定報警時間,使用sigsuspend()將進程掛起在信號SIGALARM上。
sleep()只能精確到秒級上。sleep()會令目前的進程暫停,直到達到參數seconds 所指定的時間,或是被信號所中斷。
return:若進程暫停到參數seconds 所指定的時間,成功則返回0,若有信號中斷則返回剩餘秒數。
除了時間單位為微秒以外,在使用上與sleep()差不多。還有就是實現也是不同的,sleep因為是用alarm實現的,所以時間單位為s ,而usleep的時間單位為us
,那肯定不是由alarm實現的,所以說它們的實現不同,但都是linux用的,而window下不能用,因為都是sleep和usleep都是在unistd.h下定義的。
return:若進程暫停到參數seconds 所指定的時間,成功則返回0,若有信號中斷則返回剩餘微秒數。
這個函數功能是暫停某個進程直到你規定的時間後恢復,參數req就是你要暫停的時間,其中req->tv_sec是以秒為單位,而tv_nsec以毫微秒為單位(10的-9次方秒)。由於調用nanosleep是是進程進入TASK_INTERRUPTIBLE,這種狀態是會相應信號而進入TASK_RUNNING狀態的,這就意味著有可能會沒有等到你規定的時間就因為其它信號而喚醒,此時函數返回-1,切還剩餘的時間會被記錄在rem中。
return: 若進程暫停到參數 req所指定的時間,成功則返回0,若有信號中斷則返回-1,並且將剩餘微秒數記錄在 rem中。
unistd.h 是 unix 系統標准頭文件,用於系統調用,相當於win32中的windows.h,unistd.h 定義的函數只能用於UNIX環境中,而不能用於windows。所以sleep 和 usleep 只能用於linux下,而不能用於windows 。
nalosleep 和 其它時間日期操作函數一樣都是定義在time.h中的,所以都適用
4. qt sleep函數哪個頭文件
QT雖然沒有提供Sleep(),但是QT提供了系統調用,然而每個系統中都有Sleep()函數,所以可以簡單的包含系統頭文件即可。
如果是windows平台則:
#include <windows.h>
就可以用Sleep()了:
Sleep(10000);
(注意是大寫S)linux下頭文件是:
#include <sys/stat.h>
5. c語言sleep用法
C語言標准庫中沒有sleep這個函數,它實際上是一個系統API函數。
函數功能: 執行掛起一段時間
1、在VC中使用帶上頭文件,而且全稱為Sleep(),第一個字母需要大寫。
#include<windows.h>//需要添加頭文件
Sleep(unisgnedlong);//函數聲明
Windows中,Sleep()裡面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該寫成:
Sleep(1000);
2、在gcc中,使用的頭文件因gcc版本的不同而不同,一般來說,linux系統需要添加的頭文件為:
#include <unistd.h>
應該是Sleep(1000);
在Linux下,sleep()裡面的單位是秒,而不是毫秒。
6. linux系統 下 如何讓C語言sleep()函數等待時間小於1秒
sleep()函數大概只能精確到50ms左右,你用sleep(10)是肯定不行的,如果你要精確的定時的話可以使用QueryPerformanceFrequency()函數,用法為:
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 獲得計數器的時鍾頻率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 獲得初始值
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//獲得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 獲得對應的時間值,單位為秒
}while(dfTim<0.001);
其定時誤差不超過1微秒,精度與CPU等機器配置有關。
×××××××××××××××××××××××××
sleep()函數的中等待時間是以毫秒計算的,所以等待1秒就是sleep(1000),如果要讓等待時間小於一秒,那麼就讓傳入的參數小於1000就行了.
比如,等待0.1秒:
sleep(100);
7. c語言的 sleep函數到底在哪個頭文件里啊
在<windows.h>裡面。
在VC中使用時,sleep函數的頭文件為windows。h,在Linux下,gcc編譯器中,使用的頭文件因gcc版本的不同而不同
在VC中,Sleep中的第一個英文字元為大寫的"S",在linux下不要大寫,在標准C中是sleep,不要大寫,簡單的說VC用Sleep,別的一律使用sleep
在VC中,Sleep()裡面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000);在Linux下,sleep()裡面的單位是秒,而不是毫秒。
(7)linuxsleep的頭文件擴展閱讀:
Windows.h頭文件之所重要,是因為頭文件封裝了許多庫函數以及一些類,將一些復雜的工作由庫函數處理,Windows.h頭文件中包含了Windef.h、Winnt.h、Winbase.h、Winuser.h、Wingdi.h等頭文件,涉及到了Windows內核API,圖形界面介面,圖形設備函數等重要的功能。
在C語言家族程序中,頭文件被大量使用。一般而言,每個C++/C程序通常由頭文件和定義文件組成。頭文件作為一種包含功能函數、數據介面聲明的載體文件,主要用於保存程序的聲明,而定義文件用於保存程序的實現。