The most portable solution is to use text files (usually ASCII), written with fprintf
and read with fscanf or the like. (Similar advice also applies to network protocols.)
Be skeptical of arguments which imply that text files are too big, or that reading
and writing them is too slow. Not only is their efficiency frequently acceptable
in practice, but the advantages of being able to interchange them easily between
machines, and manipulate them with standard tools, can be overwhelming.
If you must use a binary format, you can improve portability, and perhaps take advantage
of prewritten I/O libraries, by making use of standardized formats such as Sun's
XDR (RFC 1014), OSI's ASN.1 (referenced in CCITT X.409 and ISO 8825 ``Basic
Encoding Rules''), CDF, netCDF, or HDF.