現在我正計劃在C/C++中編寫一個小型服務器。該軟件的目的地將是某種Linux服務器,所以我認爲programmin在Linux上的服務器將是最好的主意。問題是,我擁有一臺MacBook(Air),並且我建立了一個Linux VM,但是IDE(Qt creator)嚇壞了我,所以我想在Xcode中開發服務器,然後在編譯完成後VM。所以我想知道pthread和socket.h的可移植性等級有多高?如果他們可以移植到某個等級,你會推薦我在Xcode中開發嗎? (我是一種熟悉Xcode的人,因爲服務器的客戶端將是一個iOS應用程序,對不起我的可憐英語(我來自GER)和(可能)感謝您的評論:)pthread和socket.h的可移植性
回答
您可以使用一個第三方庫,如boost
,它抽象出threading library和socket library這兩個平臺的具體細節。升級支持Linux和Mac OS X操作系統。
我的回答是c++
具體,我看你也用c
標記了這個問題。
那麼,對於線程,OP應該使用內置的C++ 11線程(如果可用的話),而不是提升。 – Omnifarious
雖然使用Boost可能會讓您的生活更輕鬆,但回答<pthread.h>
和<sys/socket.h>
這兩個標準都是標準POSIX標頭,並且可以在POSIX系統(如Mac OS X和GNU/Linux)之間移植。在GNU頭文件中可能有些東西是非標準的擴展或是新的POSIX的一部分,因此Mac OS X不支持,但在Mac OS X上可用的<pthread.h>
和<sys/socket.h>
中的幾乎所有內容也可在GNU/Linux上使用並工作相同。可以肯定的是,通過閱讀函數的手冊頁或在線檢查Single UNIX Specification(該鏈接適用於Mac OS X支持的POSIX的舊版本,請確保您只使用便攜式POSIX功能而不是特定於平臺的功能, GNU/Linux的大多是符合最新POSIX 2008規格)
注意,Mac OS X支持的基礎POSIX規範但並非所有選裝件,如它不支持POSIX 2001的「Timers」選項(這是POSIX-2008中基本規範的一部分,即不可選)
- 1. 在Windows上的Linux pthread可移植性
- 2. 健壯的pthread互斥鎖 - 跨平臺的可移植性
- 3. Gtk/python和可移植性
- 4. __try和__exception可移植性
- 5. Windows Azure - 可移植性和遷移?
- 6. GLOB_BRACE可移植性?
- 7. EJB可移植性
- 8. fwrite可移植性
- 9. MinGW可移植性
- 10. Linq可移植性
- 11. 雲可移植性
- 12. JavaScriptCore可移植性
- 13. OpenCV可移植性
- 14. Apache,PHP和MySQL的可移植性?
- 15. htobe64和endian.h的可移植性
- 16. dlfunc的可移植性?
- 17. nextElementSibling/nextSibling的可移植性
- 18. Android優化和可移植性
- 19. 指針算術和可移植性
- 20. 休眠和SQL可移植性
- 21. ConsoleKeyInfo,問號和可移植性
- 22. 構建系統和可移植性
- 23. SQLite庫 - Python可移植性
- 24. Python可移植性問題
- 25. std :: errc ABI可移植性
- 26. 共享庫可移植性
- 27. C - Glib GINT_TO_POINTER可移植性
- 28. FreeTTS可移植性問題
- 29. 這是一個不可移植的pthread C++程序錯誤
- 30. Google App Engine是否具有可擴展性和可移植性?
什麼語言? C還是C++? –