eventfd 的分析與具體例子

2021-10-12 03:52:14 字數 3041 閱讀 6175

linux 2.6.27後新增了乙個新的特性,就是eventfd,是用來實現多程序或多執行緒的之間的事件通知的,也可以由核心通知使用者空間應用程式事件。。

eventfd的建立是通過eventfd函式實現的,返回值即是該eventfd所對應的檔案描述符,函式的原型如下所示:

#include

inteventfd

(unsigned

int initval,

int flags)

;

initval:建立eventfd時它所對應的64位計數器的初始值;

flags: eventfd檔案描述符的標誌,用以改變 eventfd 的行為:

一切皆為檔案是 linux 核心設計的一種高度抽象,eventfd 的實現也不例外,我們可以使用操作檔案的方法操作 eventfd。

// 讀完了就沒有了

wdata =20;

if(write

(efd,

&wdata,8)

==-1)

//父程序寫20

printf

("write data %lu\n"

, wdata)

;// 10if(

fork()

==0)printf

("child read %lu\n"

, rdata)

; wdata =30;

if(write

(efd,

&wdata,8)

==-1)

//子程序寫30

printf

("child write %lu\n"

, wdata)

;exit(0

);}wait

(null);

if(read

(efd,

&rdata,8)

==-1)

//父程序讀計數器

printf

("parant read %lu\n"

, wdata)

;close

(efd)

;return0;

}

I O流具體例子

按位元組來讀取檔案 複製 如下 public class readfromfile in.close catch ioexception e try catch exception e1 finally catch ioexception e1 按字元來讀取檔案 複製 如下 以字元為單位讀取檔案,常...

單向雜湊函式的具體例子

一 md4 md5 md4是由rivest於1990年設計的單向雜湊函式,能夠產生128bit的雜湊值。不過隨著dobbertin提出尋找md4雜湊的碰撞方法,現在已經不安全了。md5是由rivest於1991年設計的單向雜湊函式,能夠產生128位元的雜湊值。md5的強抗碰撞性已經被攻破,也就是說,...

正規化間的區別(具體例子)

由於最近要做畢業設計了,所以加強了一下資料庫設計的基礎知識,主要是正規化的應用。在此作些總結吧。首先是基礎概念,也就是術語 1 實體 entity 就是實際應用中要用資料描述的事物,一般是名詞。2 字段 fields 就是一項資料,也就是我們平常所說的 列 4 鍵 key 可唯一標識一條記錄的乙個欄...