我以前編寫的C++代碼是#include
的Unix和Linux API頭文件,並且這些程序產生了預期的行爲。這就是說,我不知道這是否可以依靠。 C和C++之間的不兼容可能會導致有效的C頭在被C++程序使用時以意想不到的方式工作。Unix和Linux API標頭是否與C++兼容?
Unix和Linux API頭可以被編譯爲C++的代碼可靠地使用嗎?
這是這些標題作者的目標嗎?或者這些標題僅僅是有效的C?
這樣做時是否有任何已知的陷阱?
很顯然,Unix和Linux發行版很多,我不期待一個接一個地回答每個發行版的問題。我的期望是,同樣的答案將適用於幾乎所有的Unix和Linux發行版,例外將證明這一規則。如果這個假設是錯誤的,那麼對此的解釋也是一個有效的答案。
由Unix頭我的意思是這些:
http://www.unix.org/version3/apis/headers.html
通過Linux頭我的意思是通過Linux發行版提供通常爲一個名爲「Linux的頭」允許程序與Linux內核交互包的報頭。例如,這Debian軟件包:
https://packages.debian.org/wheezy/kernel/linux-headers-3.2.0-4-amd64
我意識到Unix的鏈接只是一個規範,並且每個Linux發行版是不同的,但我又懷疑這是合理的,問這個問題的最分佈。如果那不是真的,那麼糾正我。
編輯我只是指用戶空間程序使用的標題。
你是什麼UNIX和Linux頭意味着 – redFIVE
嗯,我發現自己的情況,我必須包括C++頭第一(像''),然後包括平臺特定的頭文件(比如'')。當夾雜物受到尊重時,編譯將失敗。 (或者情況反之亦然)。 –
jww
@redFIVE編輯。那是你在找什麼?我認爲「unix標題」是一個合理的描述,所以我可能不明白的東西。是「Unix和Linux」令人困惑嗎? – Praxeolitic