Boost logo

Boost Users :

Subject: [Boost-users] [boost::iostreams] How to get number of bytes written?
From: Milan Svoboda (milan.svoboda_at_[hidden])
Date: 2008-11-26 14:43:03


Hi All,

I'm using boost::iostreams and its filters to compress and decompress data.
However I'm not able to retrieve number of bytes really written (number of
bytes after a compression).

Does anybody know how to do that?

I'm currently using following code:

coffset if offset to where start with writing of compressed data and after
call it shall contain the length of the file. This works good to get length
of the compressed block unless block of data is written somewhere in the
middle of the file thus end of file is not the same as the last offset
where compressed data has been written to.

io::file_descriptor file(fd);
file.seek(coffset, ios_base::beg);
{
    io::filtering_ostream out;
    // Push the compression filter (bl->type.push(out);)
    out.push(file);

    io::write(out, buf, length);

    // Destroying the object 'out' causes all filters to
    // flush.
}
// Update raw length of the file.
//
coffset = file.seek(0, ios_base::end);

Thank you for any help,
Milan Svoboda


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net