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基础之while循环及if判断

 wlile循环   while True表示永远为真,不管是什么条件都会向下执行,下面是写的一个例子。 #!/usr/bin/env python age = 24        ...

python利用微信公众号实现报警功能

微信公众号共有三种,服务号、订阅号、企业号。它们在获取AccessToken上各有不同。 其中订阅号比较坑,它的AccessToken是需定时刷新,重复获取将导致上次获取的AccessT...

Python实现获取磁盘剩余空间的2种方法

Python实现获取磁盘剩余空间的2种方法

本文实例讲述了Python实现获取磁盘剩余空间的2种方法。分享给大家供大家参考,具体如下: 方法1: import ctypes import os import platform...

解决Python获取字典dict中不存在的值时出错问题

描述:Python2.7中如果想要获取字典中的一个值,但是这个值可能不存在,此时应该加上判断: 举个例子: t= {} if t.get('1'): # right:这种通过key来...

Django 中间键和上下文处理器的使用

Django 中间键和上下文处理器的使用

一、中间键的引入: Django中间件(Middleware)是一个 轻量级、底层的 “插件”系 统,可以介入 Django的请求和响应处理过程, 修改 Django的输入或输出. dj...