2014-01-17 77 views
1

我有一個應用程序需要在各種古老的Linux平臺上運行,所以我把它與GNU libc 2.1.2鏈接起來。不過目前我正在考慮構建一個UNICODE版本的應用程序。問題是我鏈接的libc沒有像vswprintf這樣的基本功能。是否可以使用我的應用程序分發更新版本的libc?

是否有可能讓我們說libc 2.4並提供它與我的應用程序(作爲一個單獨的文件libc.so.6)?它會違反GNU libc許可證嗎?

還有其他解決方案嗎?也許有一個vswprintf函數可用(我相信編寫這個函數效率不高)。到目前爲止,我唯一的選擇是將所有內容都轉換爲char *並使用vsprintf。

回答

0

聽起來很不好主意。古代的平臺應該有古代的系統調用,與古老的原型。閱讀here

世界的變化和系統調用的變化。由於不能破壞舊的二進制文件,因此與任何給定系統調用號碼關聯的語義必須完全向後兼容。

在實踐中發生的是兩件事情之一:要麼一個得到一個新的名稱和編號的新 和改進的系統調用,並用於調用老呼叫的libc 程序更改爲使用新的 一個,或新的呼叫(帶有新號碼)獲得舊名稱,並且舊的 呼叫獲得其名稱前綴「舊」。

相關問題