怎樣才能使程序具有可移植性呢?
.盡可能避免針對特定系統的假定和方法.例如,不認定程序只在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 上提供的參考書目是個很好的資源.
.盡可能避免針對特定系統的假定和方法.例如,不認定程序只在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 上提供的參考書目是個很好的資源.