Linux下libaio的乙個簡單例子

2022-09-06 20:45:12 字數 718 閱讀 8841

**:

非同步io,很好玩的乙個東西,從介面來看,封裝的比較厲害,有時間研究內部實現,可以在專案中考慮替代select.

libaio是linux下的乙個非同步非阻塞介面,它提供了以非同步非阻塞方式來讀寫檔案的方式,讀寫效率比較高。

對於libaio的讀寫過程簡單說來就是你發出乙個讀寫請求,然後你可以開始做其他事情,當讀寫過程結束時libaio會通知你你的這次請求已經完成(而select模型是告訴你讀寫已經就緒)。

這裡給出乙個很簡單的小例子,具體函式可以通過man檢視:

#include#include#include#include#include#include#includeint main(void)   

if((output_fd=open(outputfile,o_creat|o_wronly,0644))<0)

io_prep_pwrite(&io,output_fd,content,strlen(content),0);

io.data=content;

if(io_submit(ctx,1,&p)!=1)

while(1)

printf("h**en't done\n");

sleep(1);

}

io_destroy(ctx);

return 0;

}

有關libaio更加詳細的內容可以看以下兩個頁面:

linux下的第乙個驅動

前段時間忙著學python語言,其實,學得不咋滴 從習慣的底層程式設計換到上層程式設計,不用考慮記憶體的東西,還不用申請變數,總感覺不太習慣,相信久了就會好了,不過已經基本可以看懂程式了,語言確實簡單。留著以後慢慢琢磨吧。現在需要學習linux下的驅動了,一直都想學,上學期學習迷茫期中,有個機會去廣...

linux下的乙個目錄掃瞄程式

程式的開始是一些必要的標頭檔案,接下來是乙個printdir 函式,它的作用是輸出當前目錄的內容,該程式採用遞迴遍歷各級子目錄,使用depth來控制縮排。下面就是程式的 include include include include include include void printdir cha...

linux下編寫乙個簡單的執行緒

建立執行緒 int pthread create pthread t thread,const pthread attr t attr,void start routine void void arg thread 若建立成功則儲存被建立執行緒的執行緒控制代碼 attr 執行緒屬性 start ro...