2024-05-15 22:01:13 发布
网友
我的C程序是:
#include<stdio.h> unsigned char* test() { unsigned char* abc = "\x80\x31\x00\x00\x05"; return abc; }
我的Python代码是:
但是我没有得到想要的输出。 电流输出为:
??1
如何获得正确的输出?我需要与输入格式相同的输出。在
您可以使用restypePOINTER(c_ubyte),如下所示:
restype
POINTER(c_ubyte)
from ctypes import * sh_obj=cdll.LoadLibrary('./libfile.so') sh_obj.test.restype=POINTER(c_ubyte) ret=sh_obj.test() retl=[ret[i] for i in range(5)] print(retl)
如果C test()函数返回一个指向字符串"\x80\x31\x00\x00\x05"的指针,则将打印以下内容:
test()
"\x80\x31\x00\x00\x05"
它们是十进制的无符号字节值。在
您可以使用
restype
POINTER(c_ubyte)
,如下所示:如果C
^{pr2}$test()
函数返回一个指向字符串"\x80\x31\x00\x00\x05"
的指针,则将打印以下内容:它们是十进制的无符号字节值。在
相关问题 更多 >
编程相关推荐