作者godman362 (Shizuru)
看板C_and_CPP
標題[問題] fread & read
時間Mon Mar 2 19:37:21 2009
想請教fread和read之間的差異是什麼
因為在Linux Device Driver上第三章看到一句話:
應用程式使用標準I/O函式庫(例如fread())來讀取scull裝置
其實不會發現scull_read的量化傳輸行為
在read中,他有對每次read的量作一個限定(4000bytes)
那也就是說,當一次的讀取量超過4000bytes,就需要分兩次讀取
也就是read()函數要呼叫兩次
那他所謂fread()不會發現
量化傳輸行為的意思是指什麼
因為在fread()中,不也是要指定傳size大小的資料n次嗎
還請各位先進指點一番,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.74.245.163
推 LPH66:差別在於fread必然會傳那麼多回來 而read是最多傳那麼多回來 03/02 21:53
→ LPH66:也就是如果scull一次推600個byte的話 fread就會等到它推7次 03/02 21:54
→ LPH66:之後累積了4000byte (如果你是指定4000的話) 再回傳 03/02 21:54
→ LPH66:而read則是現在有600就傳600回來這樣 03/02 21:55
→ godman362:喔,原來如此,謝謝L大的解說 03/02 21:57