怎样才能使程序具有可移植性呢?
.尽可能避免针对特定系统的假定和方法.例如,不认定程序只在OpenLinux系统上运行,或者只在使用RPM包管理系统的系统上使用.
.隔离依赖于系统的部分.如果说有了一种特殊的GUI环境,例如ncurses,那么要把GUI部分的代码单独放在它自己的模块中.这样做可以使移植任务变得简单,
比如让程序使用基于X的GUI环境或者另一种基于文本的GUI
S-Lang而不是ncurses.
.尽可能复用已有的接口.为什么一定要重新创造已经存在的东西呢?从常用的数据库管理库,比如Berkeley DB或GNU
DBM中选出一种代替你自己的数据库管理库.
.使用标准接口,比如多种POSIX标准;标准语言,比如C和C++;以及标准库,比如标准C库,NAG数学库和terminfo等常用库.
http://www.cs.wvu.edu/~jdm/research/portability/portbib.html 上提供的参考书目是个很好的资源.