Reading binary data stops unexpectedly

i’m trying to parse a binary file that simply contains Wav files one
after the other packed with an arbitrary header that points where one
file begins and the lenght of it.
The case is that i want to ignore decomposing the header and just dump
each file as i encounter the Wav headers, but Ruby stops reading data
unexpectedly.

in a nutshell, my code goes like this:
File.open(‘sound.dat’, ‘r’).each_byte do |byte|
#…stuff to process the data…
end

The block exits at 15864 bytes without throwing any errors. I even tried
reading the whole file to memory and it just loads those same 15864
bytes (and it’s a 190MiB file!!!)

Is this a known Ruby bug? am i doing something wrong?

thanks in advance,
/gonchuki

Gonzalo R. wrote:

in a nutshell, my code goes like this:
File.open(‘sound.dat’, ‘r’).each_byte do |byte|
#…stuff to process the data…
end

open(‘sound.dat’, ‘rb’)

lopex

Marcin MielżyÅ?ski wrote:

Gonzalo R. wrote:

in a nutshell, my code goes like this:
File.open(‘sound.dat’, ‘r’).each_byte do |byte|
#…stuff to process the data…
end

open(‘sound.dat’, ‘rb’)

lopex

nice!

i just couldn’t find it in the pickaxe 2 and forgot that ruby handles
file open modes just like in C

thanks for your help.