**:
非同步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...