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 可唯一標識一條記錄的乙個欄...