发信人: riffle()
整理人: wenbobo(2002-12-06 22:42:40), 站内信件
|
【 在 bloodwolf (骨头) 的大作中提到: 】
fopen使用堆分配了一定数量的内存,当你用fprintf、putc等函数时,它
们先将要写的内容填入该内存区,填满了就FLUSH,真正地写入文件(当然,
这不是刷新磁盘缓冲),即调用INT 21,相当于执行write等函数。
而open呢,是直接调用INT 21,相应的读写函数write、read等也都是直
接调用INT 21。
在实际应用中,有这样两种情况:
一、数据是大批大批地读写的,例如每次0.5K、1K、2K等。调用open会
直接一点,可以省去类似fprintf等函数的一些开销。
二、数据是很零散的。例如整型数、长整型数、字符串、浮点数等说不
定要写些什么数据进去。如果一定要使用open + write。那么就得先
sprintf( buf, format, ... ),然后将buf write到文件中,这样频繁
地调用INT 21,将会浪费很多时间。这时使用fprintf( FILE, format,...)
反而更好了。
以上说的是在DOS下的情况,至于WINDOWS下及UNIX下是不是也有类似的区
别,我不太清楚(再说象WINDOWS这样,常常是希望用户“不拘小节”的)。
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.105.39.209]
|
|