问我如何编写可以在具有不同字长、字节顺序或浮点数格式的其他机器上读取的数据文件?
答最可移植的解决方案是使用文本文件(通常是 ASCII),使用fprintf写入,使用fscanf或类似的函数读取。(类似的建议也适用于网络协议。)对于认为文本文件太大或读写文本文件太慢的论点,要持怀疑态度。不仅它们的效率在实践中经常是可以接受的,而且它们能够在机器之间轻松交换、并使用标准工具进行操作的优点,可能也是压倒性的。
如果您必须使用二进制格式,您可以通过使用标准化格式(如 Sun 的 XDR (RFC 1014)、OSI 的 ASN.1 (引用自 CCITT X.409 和 ISO 8825 “基本编码规则”)、CDF、netCDF 或 HDF)来提高可移植性,并可能利用预先编写的 I/O 库。另请参阅问题 2.12、12.38 和 12.42。
参考:PCS 第 6 章,第 86、88 页