`
tcspecial
  • 浏览: 897520 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

python 调用C

阅读更多

  python 调用c除了swig,python/c api方式外,还可以通过ctypes模块动态加载dll/so,不需要编写绑定。

 

C接口:

int Set(char *key, char *val);
int Get(char *key, char *val, int *len);

 

python 调用:

import ctypes

#加载以C方式导出的动态库
API = ctypes.CDLL('./libtest.so')

iRet = API.Set('hello112' , 'world-111')
print iRet

#传递动态缓冲区
buf = ctypes.create_string_buffer(50)
len = ctypes.c_int(50)
pi = ctypes.pointer(len)

iRet = API.Get('hello112' , buf, pi)
print 'Ret:%d Val:%s len:%d'%(iRet, repr(buf.value), pi[0])

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics