看板 C_and_CPP 關於我們 聯絡資訊
想請教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