python用ctypes调用C库文件,并且实现字符串传入传出。。。。。

#include<stdio.h>

void arrtest(char *p[],int c)
{
    int i;
    for (i = 0; i < c; i++) {
        printf("%s \n", p[i]);
        sprintf(p[i],"re%d",i); 
    }

    return;
}

gcc arrtest.c -fPIC -shared -o arr.so


from ctypes import *
array_type = c_char_p * 4
names = array_type()

names[0]="test1"
names[1]="test2"
names[2]="test3"
names[3]="test4"
api = CDLL('./arr.so')

api.arrtest(names,4)
for t in names:
	print t



python太强了,这样玩都可以,,,,服了

GCC4.6  +  PYTHON 2.7通过

刚开始尝试写,搜索了下,,,

python用ctypes调用C库文件,并且实现字符串传入传出。。。。。_第1张图片

艹  看来不少人被这个返回恶心到了,最会也没搞定 return个字符串数组   就这样曲线返回了

你可能感兴趣的:(python用ctypes调用C库文件,并且实现字符串传入传出。。。。。)