昨天晚上和同事討論寫 Log 的問題,談到寫到文件,后來談到寫文件用 ReadFile、WriteFile 還是用 fread、fwrite 的問題。我一直對 fread、fwrite 沒啥好感,原因是它自作主張的搞了一套緩存機制。可是僅僅這點就鄙視它似乎還說不過去。談著談著,后來我們對它的參數(shù)設(shè)計起了懷疑——這里有一個參數(shù)是多余的!從表面看,ReadFile、WriteFile 的參數(shù)是恰到好處的,fread、fwrite 作為它們的上層函數(shù),似乎沒必要把一個參數(shù)拆成 2 個呀。
后來就一直跟 fread,直到出現(xiàn) ReadFile,都沒發(fā)現(xiàn)這 2 個參數(shù)有什么特別的用處,他們很早就被乘起來了:
count = total = elementSize * count;
所以,目前我仍然對這個設(shè)計感到困惑。
有誰知道,這是由于什么樣的歷史原因/技術(shù)原因,才使這個函數(shù)變成現(xiàn)在這副模樣的?