1
我有一個共享庫,除其他事項外,包含此功能:蟒蛇CTYPE字符串的指針32B VS 64B:分段錯誤(核心轉儲)
char * LibVers()
{
return " LibVers 2.03";
}
我包裝,所述使用ctypes的,有一個共享庫property defined defined:
@property
def lib_vers(self):
"""Get shared library version information.
:return: The shared library version string.
:rtype: String
"""
return c_char_p(self.lib.LibVers()).value
在32b計算機上(Fedora 16),這段代碼工作正常。但是,在64b計算機(CentOS 7)上,這種代碼分段錯誤(核心轉儲)。
爲什麼會這樣?
您可以使用'.restype = c_char_p'並放置轉換。 – 2014-09-14 07:41:54
@MarkTolonen:那更優雅。謝謝。 – Sardathrion 2014-09-15 07:18:56