Instead of packing to a buffer, and subsequently storing data to a
file, you can directly pack to a file by passing the filename and
openmode arguments to pack or xdr_pack
's constructor. The arguments
are identical to that of fopen:
{ pack_t checkpoint("foo.ckpt","w"); checkpoint << bar; }The advantage here is large checkpoints can be written to disk without intermediate buffering in memory. The file is closed when the
pack_t
object is destroyed.