下一個:,上一個:,上層:設計建議   [目錄][索引]


3.2 與其他實作的相容性

除了偶爾的例外情況,GNU 的實用程式和函式庫應該向上相容於 Berkeley Unix 中的那些,並且如果標準 C 規範了它們的行為,則應向上相容於標準 C,如果 POSIX 規範了它們的行為,則應向上相容於 POSIX。

當這些標準衝突時,為每一個標準提供相容模式會很有用。

標準 C 和 POSIX 禁止許多種類的擴充功能。儘管如此,還是可以自由地製作擴充功能,並包含 ‘--ansi’、‘--posix’ 或 ‘--compatible’ 選項來關閉它們。然而,如果擴充功能有顯著的機會破壞任何真實的程式或腳本,那麼它就不是真正的向上相容。因此,您應該嘗試重新設計其介面,使其向上相容。

許多 GNU 程式在環境變數 POSIXLY_CORRECT 被定義時(即使它被定義為空值)會抑制與 POSIX 衝突的擴充功能。如果適當,請讓您的程式識別此變數。

當一個功能僅由使用者使用(而不是由程式或命令檔使用),並且它在 Unix 中做得不好時,可以自由地完全用完全不同且更好的東西取代它。(例如,vi 被 Emacs 取代。)但是,提供一個相容的功能也很好。(有一個免費的 vi 克隆,所以我們提供了它。)

無論是否有任何先例,都歡迎額外有用的功能。