Project

General

Profile

Bug #10007

Updated by nobu (Nobuyoshi Nakada) over 10 years ago

~~~ruby ~~~ 
 #!/usr/bin/env ruby 

 CHUNK_SIZE = 29              # no problems with CHUNK_SIZE = 28 

 File.open(__FILE__,'r') do |f| 
   d0 = '' 
   a = [] 

   f.read(CHUNK_SIZE, d0) 
   a << d0[15..-2] 
   a << d0[5..-2] 
   a << d0[-5..-2] 
   a << d0[15..-1] 
   a << d0[5..-1]             # <-- only this string will change 
   a << d0[-5..-1] 
   p a 
   f.read(CHUNK_SIZE, d0)     # <-- 2nd read 
   p a 
 end 
 ~~~ 

 output on ruby 1.9.3p448: **(all strings are similar before and after 2nd read)**  

 ~~~ 
 ["ruby\n\nCHUNK_S", "r/bin/env ruby\n\nCHUNK_S", "NK_S", "ruby\n\nCHUNK_SI", "r/bin/env ruby\n\nCHUNK_SI", "NK_SI"] 
 ["ruby\n\nCHUNK_S", "r/bin/env ruby\n\nCHUNK_S", "NK_S", "ruby\n\nCHUNK_SI", "r/bin/env ruby\n\nCHUNK_SI", "NK_SI"] 
 ~~~ 

 output on ruby 2.0.0p481, 2.0.0p353, 2.0.0p247: **(5th string changed unexpectedly!)** 

 ~~~ 
 ["ruby\n\nCHUNK_S", "r/bin/env ruby\n\nCHUNK_S", "NK_S", "ruby\n\nCHUNK_SI", "r/bin/env ruby\n\nCHUNK_SI", "NK_SI"] 
 ["ruby\n\nCHUNK_S", "r/bin/env ruby\n\nCHUNK_S", "NK_S", "ruby\n\nCHUNK_SI", "29\n\nFile.open(__FILE__,'", "NK_SI"] 
 ~~~

Back