对于大学中的一个项目,我需要扩展现有的C应用程序,它最终将在各种商业和非商业unix系统(FreeBSD、Solaris、AIX等)上运行。
当我想要写一个可移植性最好的C程序时,我必须考虑哪些事情?
发布于 2010-02-21 04:19:46
您可能需要与之保持同步的一个特殊问题是endianness (例如,如果您的数据文件希望跨平台工作)。
在不同的体系结构上,数字在二进制级别上以不同的方式表示。大端系统将最高有效字节排在第一位,小端系统将最低有效字节排在第一位。
如果您以一种字节序将一些原始数据写入文件,然后在另一种字节序的系统上读回该文件,那么您显然会遇到问题。
在大多数系统上,您应该能够在编译时从sys/param.h获得字节顺序。如果需要在运行时检测它,一种方法是使用int和char的联合,然后将char设置为1,并查看int的值是什么。
https://stackoverflow.com/questions/2303516
复制相似问题