我有一个 C 函数如下:
char* hash_id_G1(char *str){
char hash[20];
...
return hash;
}
我需要的是一些类似这里的函数,它将接收一个 char 数组并返回一个 char 数组或指向 char 的指针。
我会将它们编译成一个共享的so并使用ctypes将其导入python。
这就是我到目前为止所做的:
from ctypes import *
ibc = cdll.LoadLibrary('./libibc.so.1.0.1')
strin = 'sometext to hash'
ids = (c_char * 40)()
ids.value = strin
hash = c_char_p
hash_id = ibc.hash_id_G1
hash_id.restype = c_char_p
hash = hash_id(ids)
该库做得很好,但我无法设置 restype。当我这样做时,代码会因段错误而崩溃。
我需要从python中一一调用c库中的函数。这些函数通常返回加密。如何定义这些函数,以便它们接受来自 ctype 接口的字符串并以某种可存储的形式返回加密?
任何帮助表示赞赏。我对 C 指针和相关的东西非常薄弱。提前致谢
更新
分段错误是因为编译错误。如果函数要返回一个无符号字符,我将如何在 C 中声明 ctype 变量?