博客專欄

EEPW首頁(yè) > 博客 > 關(guān)于Linux 中sleep()函數(shù)說(shuō)明

關(guān)于Linux 中sleep()函數(shù)說(shuō)明

發(fā)布人:電子禪石 時(shí)間:2022-01-05 來(lái)源:工程師 發(fā)布文章
相關(guān)函數(shù):signal, alarm
 
頭文件:#include <unistd.h>
 
定義函數(shù):unsigned int sleep(unsigned int seconds);
 
函數(shù)說(shuō)明:sleep()會(huì)令目前的進(jìn)程暫停, 直到達(dá)到參數(shù)seconds 所指定的時(shí)間, 或是被信號(hào)所中斷.
 
返回值:若進(jìn)程/線程掛起到參數(shù)所指定的時(shí)間則返回0,若有信號(hào)中斷則返回剩余秒數(shù)。


linux下Sleep()函數(shù):?jiǎn)挝粸楹撩?
 
如果需要更精確可以用usleep單位為微秒
線程休眠函數(shù):void usleep(unsigned long usec);
 
linux下delay()函數(shù):
原型為extern void delay(unsigned int msec);
它可以延時(shí)msec*4毫秒,也就是如果想延時(shí)一秒鐘的話,可以這么用 delay(250);

這里寫圖片描述

分析:

unistd.h

sleep簡(jiǎn)單的說(shuō),類似使當(dāng)前進(jìn)程睡眠,進(jìn)程睡眠,就是將進(jìn)程掛起,不再占用CPU(自動(dòng)放棄CPU)。
這里sleep是為了讓子進(jìn)程在父進(jìn)程之后執(zhí)行,試想如果子進(jìn)程先執(zhí)行完了,父進(jìn)程就會(huì)永遠(yuǎn)阻塞在waitpid函數(shù),等待那個(gè)已經(jīng)結(jié)束的子進(jìn)程

轉(zhuǎn)載學(xué)習(xí):https://blog.csdn.net/fly__chen/article/details/53175301

程序掛起操作


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: C

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉