有一个C文件:
#include <stdio.h>
#include <stdlib.h>
#define NUMBER_OF_STRING 4
#define MAX_STRING_SIZE 1024
int func(const char **arr) {
// char **arr = malloc(5 * sizeof(char*));
arr[0] = "String 0";
arr[1] = "String 1";
arr[2] = "String 2";
arr[3] = "String 3";
arr[4] = "String 4";
return 0;
}
int main () {
// char **mas;
// func(mas);
// for (int i = 0; i < 5; i++) {
// printf("%s\n", mas[i]);
// }
return 0;
}
如何通过ctypes在python中获取func函数的结果?
草图 py (2.7) 文件
import ctypes
lib = ctypes.CDLL("d:\\project\\C\\untitled\\main.so")
# buf = ctypes.create_string_buffer(b'0')
buf = (ctypes.c_char * 1024)()
# buf = (ctypes.c_char_p * 1024)()
res = lib.func(buf)
print(res)
print buf.value # == 'D@�gM@�gV@�g_@�gh@�g'
代替
利用: