广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python调用C库
  • 208
分享到

python调用C库

python 2023-01-31 02:01:12 208人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

编写C库test.c#include <stdio.h> #include <string.h> int strcmpTest(char *a, char *b) { return strcmp(a,

  • 编写C库test.c

    #include <stdio.h>
    #include <string.h>
    int strcmpTest(char *a, char *b)
    {
            return strcmp(a, b);
    }
    void strcpyTest(char *dst, char *src)
    {
            memcpy(dst, src, strlen(dst));
    }
    char *readStr(char *str)
    {
            printf("LibPrint: %s  addr=%p\n", str, str);
            return str;
    }

   将c文件生成动态库:GCc test.c -fPIC -shared -o libtest.so

  • 编写python文件调用该库

import ctypes
test = ctypes.CDLL("./libtest.so")
s1 = '0123456789'
s2 = '0123456789'
s3 = '987654321'
print 'strcmp case:'
print test.strcmpTest(s1, s2)
print 'strcpy case:'
test.strcpyTest(s1, s3)
print  s1
print 'readStr case:'
print  test.readStr(s3)

   执行结果如下:

strcmp case:
0
strcpy case:
987654321
readStr case:
LibPrint: 987654321  addr=0x7fb00c1e0fb4
203296692

我用计算器算了一下,203296692 == 0xc1e0fb4(32bits)。我实验的机器是64bits,所以看起来addr要大。并且readStr的返回值到Python脚本中,是以32bits有符号存储的。




--结束END--

本文标题: python调用C库

本文链接: https://www.lsjlt.com/news/185456.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python调用C库
    编写C库test.c#include <stdio.h> #include <string.h> int strcmpTest(char *a, char *b) { return strcmp(a,...
    99+
    2023-01-31
    python
  • Python调用Linux c库:cty
       我在http://jlnsqt.blog.51cto.com/2212965/1405052这篇博客中讲述了匹配URL的一个算法,因项目需要将其封装为动态库,并让python组调用,所以研究了一下ctypes,感觉超级棒,必须记录下...
    99+
    2023-01-31
    Python Linux cty
  • C++调用动态库两种方式和Python调用C++动态库
    创建动态库动态库是在程序运行时加载的库文件,并不占用程序本身大小。选择动态库项目:新建.h和.cpp文件:# cat.h #pragma once extern "C" _declspec(dllexport) int sum(int a,...
    99+
    2023-05-14
    Python C++ 动态库
  • C++调用动态库和Python调用C++动态库的方法是什么
    这篇文章主要介绍“C++调用动态库和Python调用C++动态库的方法是什么”,在日常操作中,相信很多人在C++调用动态库和Python调用C++动态库的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-05
  • C#使用IronPython库调用Python脚本
    IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Hugunin所发起,是一个开源的项目,基于微软的 DLR引擎。 IronPython的主...
    99+
    2022-11-13
  • C#--调用Python(包含第三方库)
    1. C# 调用 Python 常见的方法有4种 参考链接 1.1 Pythonnet (推荐) 可以很好的支持第三方库。 推荐这个,经本人验证这个很好用。 后文 2. 详细使用。 1.2 IronP...
    99+
    2023-09-29
    c# python
  • C# 调用Python
    一、简介 IronPython 是一种在 NET 和 Mono 上实现的 Python 语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造。 Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性...
    99+
    2023-10-07
    c# python
  • Python与C之间的相互调用(Python C API及Python ctypes库)
    问题,需要实现全局快捷键,但是是事实上Qt并没有对全局快捷键提供支持,那么用Qt的话就只能通过Win32Api来完成了,而我,用的是PyQt,还需要用Python来调用win32 API,事实上,都没有什么难的。因为Python如此的流行,...
    99+
    2023-06-05
  • python直接调用和使用swig法方调用c++库
    c++运算速度快于python,python简单易写。很多时候对于已有的c++代码也不想用python重写,此时就自然而然地想到用python调用c或者c++,两全其美。然而根据这些...
    99+
    2022-11-13
  • C#调用动态库
    一、引言 “为什么我们需要掌握互操作技术的呢?” 对于这个问题的解释就是——掌握了.NET平台下的互操作性技术可以帮助我们在.NET中...
    99+
    2022-11-13
  • python如何直接调用和使用swig法方调用c++库
    小编给大家分享一下python如何直接调用和使用swig法方调用c++库,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!c++运算速度快于python,python简单易写。很多时候对于已有的c++代码也不想用python重...
    99+
    2023-06-29
  • C++通过内嵌解释器调用Python及间接调用Python三方库
    目录1.移植Python解释器2.VS配置(VS2017为例,此教程与VS版本无关)3.C++调用程序样例4.被调Python程序样例本文章目的是脱离安装Python环境的前提下,由...
    99+
    2022-11-12
  • C++如何调用python
    小编给大家分享一下C++如何调用python,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、首先要配好vs开发工程注意版本;我这使用32位的python那么我v...
    99+
    2023-06-22
  • c++ pthread库怎么调用
    要使用pthread库,需要引入头文件`#include `。 下面是一个简单的示例,展示了如何使用pthread库创建和运行一个线...
    99+
    2023-10-26
    c++ pthread
  • rust怎么调用c++库
    在Rust中调用C++库,可以使用Rust的FFI(Foreign Function Interface)功能来实现。以下是一般的步...
    99+
    2023-10-26
    rust c++
  • golang怎么调用c++库
    要在Golang中调用C++库,你需要使用CGo,它是Golang与C/C++代码交互的一种方式。下面是一个简单的示例,展示了如何调...
    99+
    2023-10-20
    golang c++
  • C#怎么调用js库
    这篇文章主要介绍“C#怎么调用js库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#怎么调用js库”文章能帮助大家解决问题。安装ClearScriptClearScript是微软开源的js引擎,支...
    99+
    2023-07-05
  • C++中怎么调用C链接库
    本篇文章给大家分享的是有关C++中怎么调用C链接库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C++调用C链接库,其实相对C调用C++。因为C++本来就向下兼容C吧但由于编译...
    99+
    2023-06-17
  • 详解python如何调用C/C++底层库与互相传值
    前言 开发环境: Centos 7 + Python 3.5.1 + Qt Creator(只是使用Qt Creator编译而已,并没有使用QT的任何库) Python调用C/C++库,我现在能做到的有...
    99+
    2022-06-04
    底层 详解 python
  • ubuntu中python调用C/C++方法之动态链接库详解
    安装booJlLUslVOSst python调用C/C++的方法有很多,本文使用boost.python。考虑到后期有好多在boost上的开发工作,所以boost一并安装了,Boost库分为两个部分来使用,一是直接使...
    99+
    2022-06-04
    python调用动态链接库 python 动态链接库 ubuntu 动态链接库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作