Subject: Re: [boost] Interest in simple unformatted binary stream I/O?
From: Vicente BOTET (vicente.botet_at_[hidden])
Date: 2011-04-24 15:18:25
> Message du 24/04/11 14:14
> De : "Beman Dawes"
> A : "Boost Developers List"
> Copie Ã :
> Objet : [boost] Interest in simple unformatted binary stream I/O?
> There have been many requests on Boost and various C++ newsgroups for
> unformatted binary I/O. For example, in 2003 Neal Becker wrote:
> I wonder if anyone has code for implementing unformatted I/O?
> What I have in mind is
> for the simple case where the application that reads data knows
> the data types, so
> this is not as complicated as the general marshalling situation.
> This proposal provides a very simple solution that works with standard
> library input and output streams. The one caveat is that the stream
> must be opened with filemode std::ios_base::binary to avoid certain
> data values being treated as line endings.
> int main()
> fstream f("binary_stream_example.dat",
> std::ios_base::trunc | std::ios_base::in | std::ios_base::out |
> int32_t x = 0x01020304;
> int32_t y = 0;
> f << bin(x); // write 4 bytes
> f >> bin(y); // read 4 bytes
> BOOST_ASSERT(x == y);
> return 0;
I guess that we can not mix binary and non binary formats. How a binary stream woks for non binary codes?
I donÂ·t know if a manipulator that changes the mode globaly can be defined so the following will work
f << bin << x1 << x2; // write 4+4 bytes
f >> bin >> y1 >> y2; // read 4+4 bytes
> Is there interest in this for Boost?
> It seems way too small and simple to be a whole library itself. Are
> there any ideas where it should live and what namespace it should be
Waiting for best, it seems the utility library is a good candidate.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk