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

yipeiwu_com7年前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实现发送邮件功能代码

本文实例为大家分享了python实现发送邮件功能的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- # Author :Gogh # @Tim...

Python 函数绘图及函数图像微分与积分

Python 函数绘图及函数图像微分与积分

前言 在学校太闲,就写了这个程序,可以绘制函数图像,并且可以绘制其导函数图像和不定积分的图像,效果非常不错。 效果图 说明 1,程序无法绘制复数图像,若函数返回一个复数,将自动取模作为...

Python常见内置高效率函数用法示例

本文实例讲述了Python常见内置高效率函数用法。分享给大家供大家参考,具体如下: 1.  filter(function,sequence) 将sequence中的每个元素,...

Python 中 list 的各项操作技巧

最近在学习 python 语言。大致学习了 python 的基础语法。觉得 python 在数据处理中的地位和它的 list 操作密不可分。 特学习了相关的基础操作并在这里做下笔记。...

Python获取Redis所有Key以及内容的方法

一、获取所有Key # -*- encoding: UTF-8 -*- __author__ = "Sky" import redis pool=redis.Connection...