2017-07-14 56 views
0

實現。我使用的POSIX API之一是posix_fallocate(),在測試時我發現它不被MacOS支持。簡單的方法來找出是否在寫我的代碼,我想有所有POSIX操作系統的共同實現,而不是爲每個操作系統分開執行的一個POSIX API是由OS

如果我知道這早些時候,我就沒有用過這個API或不得不爲每個操作系統單獨實現。

所以我的問題是 - 什麼是一個簡單的方法來找到在不同的操作系統特定POSIX電話支持?人們總是需要爲每個目標操作系統搜索文檔嗎?

謝謝。

回答

1

望着文檔是一個良好的開端,但它往往不會告訴你,當一個特定的功能已經實現,這也很重要。對於難以理解的平臺,可能很難判斷哪些舊版本仍然相關,這使得更難確定是否可以接受對特定POSIX功能的依賴。

另一個問題是功能是否實現,但質量不合格。 posix_fallocate在這方面是一個有趣的角落案例。 glibc的實現使用仿真如果文件系統缺乏一個實際低級別fallocate運營支撐(如NFS直到最近):

根據您的應用做什麼,這種行爲可能不可接受。只檢查頭文件和文檔可能不會揭示這一點(例如,上述文檔中的零件僅在最近才添加)。

最後,沒有建立並儘早對所有相關目標測試很好的替代品,但我明白,這是對非Linux的目標越來越困難。

相關問題