python3利用ctypes传入一个字符串类型的列表方法

yipeiwu_com6年前Python基础

c语言里:c_p.c

#include <stdio.h>

void get_str_list(int n, char *b[2])
{
 printf("in c start");
 for(int i=0;i<n;i++)
 {
  printf("%s", *(b+i));
  printf("\n");
 }
 printf("in c end");
}

编译为动态库的命令:

gcc -o hello1.so -shared -fPIC c_p.c

python里:p_c.py

from ctypes import *
ll = cdll.LoadLibrary
lib = ll("./12_23_ctype_list/hello1.so")
n = 3
str1 = c_char_p(bytes("nihao", 'utf-8'))
str2 = c_char_p(bytes("shijie", 'utf-8'))

a = (c_char_p*2)(str1, str2)
lib.get_str_list(2, a)

输出

in c startnihao
shijie
in c end

以上这篇python3利用ctypes传入一个字符串类型的列表方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 实现将txt文件多行合并为一行并将中间的空格去掉方法

有一个txt文本如下: 151 151 1234561 156421 214156 1523132 031320 现希望将两行合并为一行,并将中间所有的空格都去掉: (pyth...

python3实现全角和半角字符转换的方法示例

前言 本文主要给大家介绍了关于python3中全角和半角字符转换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一、背景介绍 解决什么问题:快速方便的对文...

python 基础学习第二弹 类属性和实例属性

复制代码 代码如下: #!/usr/bin/env python class Foo(object): x=1 if __name__=='__main__': foo = Foo()...

详解Python是如何实现issubclass的

使用Python内置的issubclass方法很方便的检测一个类是否是另一个类的子类。 这个是issubclass的文档: issubclass(class, classinfo) R...

python根据url地址下载小文件的实例

如下所示: #########start根据url地址下载小文件############ def download_little_file(from_url,to_path): c...