It's a bit worse than I thought. We can't use stream I/O to do binary I/O, but that's what's being used. See http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#3 for details.