C語言 unix c 實現sleep函式的功能

2021-08-07 19:30:00 字數 648 閱讀 2617

sleep函式原型:unsigned

int sleep(unsigned

int seconds);

思路: 利用函式alarm函式來計時,產生乙個鬧鐘訊號,等alarm發出訊號,pause接受到訊號然後擊穿結束阻塞狀態,達到睡眠效果

#include

#include

#include

//訊號處理函式

void doit(int n)

unsigned

int psleep(unsigned

int s)

int main(void)

return

0; }

命令: tarena@ubuntu:~/day/day33$ a.out

結果: .....

.....

.....

.....//每隔兩秒出一次

^c分析: 先改變訊號的處理方式,不改變訊號的處理方式的話執行**之後2s後顯示一下「鬧鐘「就會結束程序

進入死迴圈,呼叫psleep函式,在函式中alarm每s秒產生一次訊號,每次產生訊號pause接收到繼續執行下面的**。

這個程式只是教學用,與工程**還差的很遠,這是基本原理

C語言 unix c 動態載入

動態載入 在程式中根據程式的需要,動態載入某個庫函式,這種行為稱為動態載入,系統為實現動態載入提供了一下函式 man 3 dlopen顯示幫助 標頭檔案 include void dlopen const char filename,int flag 引數 filename 制定了動態庫的檔案名字 ...

C語言 unix c 訊號基礎

二 訊號的基礎 1 什麼是訊號 訊號就是 軟中斷 軟中斷就是軟體模擬的中斷機制。2 中斷是什麼 正常的執行流程,訊號處理程式是兩條執行路線,但是屬於同乙個程序 3 系統為我們提供了哪些訊號?kill l 察看系統的中斷 64個訊號,32,33沒有 tarena ubuntu kill l 1 sig...

C語言 unix c 共享記憶體

一 共享記憶體 1 獲取乙個鍵值 ftok 3 2 使用鍵值獲取共享記憶體的id shmget 2 include include int shmget key t key,size t size,int shm 引數 key ftok 3 的返回值 size 指定共享記憶體段的尺寸 shm mod...