I was once a firm believer in the virtues of a record-oriented I/O
interface such as RMS, but after using UNIX and Linux for several
years I became a convert to stream I/O as the base primitive. One can
always implement record I/O on top of stream I/O if you want it, but
it's difficult to do it the other way round.