发信人: 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]
  | 
 
 
 |