比较 Python 中的 C 指针
Comparing C pointers in Python
我正在寻找一种更简单的方法来比较 python 中两个 C 指针处的数据。我现在使用的方法:
import cffi
ffi = cffi.FFI()
def ref_char_p(char_p):
arr = []
null_term = 0;
while(char_p[null_term] != 0):
null_term += 1
for x in range(0, null_term):
arr.append(char_p[x])
return arr
char_p = ffi.new("char[]", '\x41\x42\x43')
char_p2 = ffi.new("char[]", '\x41\x42\x43')
if(ref_char_p(char_p) == ref_char_p(char_p2)):
print "equal"
else:
print "not equal"
有什么方法可以让我更接近于:
if(char_p == char_p2):
print "equal"
我已经通读了 cffi 文档,但没有找到任何有希望的东西。
您可以使用 ffi.string()
将字符数组转换为字节对象:
ffi.string(char_p) == ffi.string(char_p2)
我正在寻找一种更简单的方法来比较 python 中两个 C 指针处的数据。我现在使用的方法:
import cffi
ffi = cffi.FFI()
def ref_char_p(char_p):
arr = []
null_term = 0;
while(char_p[null_term] != 0):
null_term += 1
for x in range(0, null_term):
arr.append(char_p[x])
return arr
char_p = ffi.new("char[]", '\x41\x42\x43')
char_p2 = ffi.new("char[]", '\x41\x42\x43')
if(ref_char_p(char_p) == ref_char_p(char_p2)):
print "equal"
else:
print "not equal"
有什么方法可以让我更接近于:
if(char_p == char_p2):
print "equal"
我已经通读了 cffi 文档,但没有找到任何有希望的东西。
您可以使用 ffi.string()
将字符数组转换为字节对象:
ffi.string(char_p) == ffi.string(char_p2)