fread 和 read的区别
f是ANSI的C標準庫。而后者的是UNIX下的系統(tǒng)調(diào)用。
fread帶有緩沖,是read的衍生,或者說fread是通過read實現(xiàn)的
要想直接和硬件打交道,必須用read
fopen/fread是C標準的庫函數(shù),操作的對象是: file stream
open/read是和操作系統(tǒng)有關的系統(tǒng)調(diào)用。操作的對象是: “file descriptor”
fread返回的是一個FILE結(jié)構(gòu)指針
而read返回的是一個int的文件號
如果文件的大小是8k。
你如果用read/write,且只分配了2k的緩存,則要將此文件讀出需要做4次系統(tǒng)調(diào)用
來實際從磁盤上讀出。
如果你用fread/fwrite,則系統(tǒng)自動分配緩存,則讀出此文件只要一次系統(tǒng)調(diào)用從磁
盤上讀出。
也就是用read/write要讀4次磁盤,而用fread/fwrite則只要讀1次磁盤。效率比read
/write要高4倍。
如果程序?qū)?nèi)存有限制,則用read/write比較好。
一般用來處理文件
都用fread 和fwrite,它自動分配緩存,速度會很快,比自己來做要簡單如果要處理一些特殊的描述符,用read 和write,如套接口,管道之類的
轉(zhuǎn)載于:https://www.cnblogs.com/shaoguangleo/archive/2010/11/30/2805826.html
總結(jié)
以上是生活随笔為你收集整理的fread 和 read的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NetBeans IDE 7.1 Win
- 下一篇: CGDC