python 调用c语言函数的实例讲解
虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成。这样,就需要用python来调用c的代码了
具体流程:
c编写相关函数 ,编译成库
然后在python中加载这些库,指定调用函数。
这些函数可以char ,int, float, 还能返回指针。
以下示例:
通过python调用c函数,返回"hello,world 字符串"
新建c语言文件 hello.c
touch hello.c
#include <stdio.h> char *get_str() { return "hello,world" }
编译成库
gcc -o hello.so --share -fPIC hello.c
新建python脚本
touch test.py
from ctypes import * dll = CDLL("./hello.so") dll.get_str.restype = c_char_p str = dll.get_str() print(string_at(str, 11))
执行python脚本
[feng@arch python_c]$ python test.py hello,world
以上这篇python 调用c语言函数的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python与C互相调用的方法详解
前言 最近因为工作的需要,在考虑基于udp做一个用于网游战斗中的数据同步协议,为了前期测试数据,决定先做一个外部的代理tunnel,原理是在server端和client端分别建立网络转发proxy,即原来的C/S连接改为两个proxy之间数据快速传输.因为udp库是用C++写的代码,在测试数据的时候需要不断地修改参数,重新编译,修改输出统计数据制表等,不胜其烦,最终决定导出接口由python脚本来进行逻辑调用.下面话不多说,来一起看看详细的介绍: C/C++导出到python有多种方法,根据不同
-
用C语言模仿Python函数的一种简单实现方法
首先得说明一点,C 语言不是函数式编程语言,要想进行完全的函数式编程,还得先写个虚拟机,然后再写个解释器才行(相当于 CPython ). 下面我们提供一个例子,说明 C 语言函数可以"适度地模仿" Python 函数. 我们有如下的 Python 程序: def line_conf(a, b): def line(x): return a*x + b return line line1 = line_conf(1, 1) line2 = line_conf(4, 5) print(l
-
python和C语言混合编程实例
最近为了测试网速情况怎么样,由于部分业务服务器需要关闭icmp,这样的话采用普通的ping就无法适应我的需求,于是自己简单的写了一个基于tcp端口的ping的程序,由于c执行效率比较的不错,但是开发效率低下,而python是开发效率高,但是执行效率不如C,由于需要大规模的使用,于是用C实现核心部分的代码,并把这部分实现成一个python的模块,由python调用c的模块,下面就贴代码吧 复制代码 代码如下: /* tcpportping.c */#include <Python.h>#incl
-
用C语言模仿Python函数的实例
首先得说明一点,C 语言不是函数式编程语言,要想进行完全的函数式编程,还得先写个虚拟机,然后再写个解释器才行(相当于 CPython ). 下面我们提供一个例子,说明 C 语言函数可以"适度地模仿" Python 函数. 我们有如下的 Python 程序: def line_conf(a, b): def line(x): return a*x + b return line line1 = line_conf(1, 1) line2 = line_conf(4, 5) print(l
-
Python调用C语言开发的共享库方法实例
在helloworld工程中,编写了一个简单的两个数值相加的程序,编译成为共享库后,如何使用python对其进行调用呢? 使用ll命令列出当前目录下的共享库,其中共享库名为libhelloworld.so.0.0.0 复制代码 代码如下: ufo@ufo:~/helloworld/.libs$ ll 总用量 32 drwxr-xr-x 2 ufo ufo 4096 1月 29 14:54 ./ drwxr-xr-x 6 ufo ufo 4096 1月 29 16:08 ../ -rw-r--
-
python 调用c语言函数的实例讲解
虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成.这样,就需要用python来调用c的代码了 具体流程: c编写相关函数 ,编译成库 然后在python中加载这些库,指定调用函数. 这些函数可以char ,int, float, 还能返回指针. 以下示例: 通过python调用c函数,返回"hello,world 字符串" 新建c语言文件 hello.c touch hello.c #include <stdio.h> char *get_str() {
-
python 调用c语言函数的方法
虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成.这样,就需要用python来调用c的代码了 具体流程: c编写相关函数 ,编译成库 然后在python中加载这些库,指定调用函数. 这些函数可以char ,int, float, 还能返回指针. 以下示例: 通过python调用c函数,返回"hello,world 字符串" 新建c语言文件 hello.c touch hello.c #include <stdio.h> char *get_str() {
-
Python调用C语言的方法【基于ctypes模块】
本文实例讲述了Python调用C语言的方法.分享给大家供大家参考,具体如下: Python中的ctypes模块可能是Python调用C方法中最简单的一种.ctypes模块提供了和C语言兼容的数据类型和函数来加载dll文件,因此在调用时不需对源文件做任何的修改.也正是如此奠定了这种方法的简单性. 示例如下 实现两数求和的C代码,保存为add.c //sample C file to add 2 numbers - int and floats #include <stdio.h> int add
-
Python调用R语言实例讲解
网络上经常看到有人问数据分析是学习Python好还是R语言好,还有一些争论Python好还是R好的文章.每次看到这样的文章我都会想到李舰和肖凯的<数据科学中的R语言>,书中一直强调,工具不分好坏,重要的是解决问题的思路,就算是简单的excel,也能应付数据分析中的大部分问题.再者Python和R本来就没有什么好对比的,一门是计算机工程语言,一门是统计语言,只有将两者结合起来,才能发挥更大的威力,不是吗,对于数据分析的人来说,难道不是两样都要掌握的吗? rpy2是Python调用R程序的模块,旨
-
Python实现的调用C语言函数功能简单实例
本文实例讲述了Python实现的调用C语言函数功能.分享给大家供大家参考,具体如下: 实例参考python cookbook 中的15.1节中的例子P612页 先把 c文件编译成 so文件 gcc a.c -fpic -shared -o lib.so 通过上面编译成so文件 利用ctypes模块. from ctypes import cdll a=cdll.LoadLibrary("./lib.so") a.say() 能过上面代码测试通过. 更多关于Python相关内容感兴趣的读
-
详解C++调用Python脚本中的函数的实例代码
1.环境配置 安装完python后,把python的include和lib拷贝到自己的工程目录下 然后在工程中包括进去 2.例子 先写一个python的测试脚本,如下 这个脚本里面定义了两个函数Hello()和_add().我的脚本的文件名叫mytest.py C++代码: #include "stdafx.h" #include <stdlib.h> #include <iostream> #include "include\Python.h&quo
-
基于python select.select模块通信的实例讲解
要理解select.select模块其实主要就是要理解它的参数, 以及其三个返回值. select()方法接收并监控3个通信列表, 第一个是所有的输入的data,就是指外部发过来的数据,第2个是监控和接收所有要发出去的data(outgoing data),第3个监控错误信息在网上一直在找这个select.select的参数解释, 但实在是没有, 哎...自己硬着头皮分析了一下. readable, writable, exceptional = select.select(inputs, ou
-
对Python实现简单的API接口实例讲解
get方法 代码实现 # coding:utf-8 import json from urlparse import parse_qs from wsgiref.simple_server import make_server # 定义函数,参数是函数的两个参数,都是python本身定义的,默认就行了. def application(environ, start_response): # 定义文件请求的类型和当前请求成功的code start_response('200 OK', [('Con
-
python密码错误三次锁定(实例讲解)
程序需求: 输入用户名,密码 认证成功显示欢迎信息 输入错误三次后锁定用户 流程图: 好像画的不咋地 查看代码: #!/usr/bin/env python # _*_ coding:utf-8 _*_ # File_type:一个登录接口 # Author:smelond import os username = "smelond"#用户名 password = "qweqwe"#密码 counter = 0#计数器 #读取黑名单 file = os.path.e
-
python清除字符串中间空格的实例讲解
1.使用字符串函数replace >>> a = 'hello world' >>> a.replace(' ', '') 'helloworld' 看上这种方法真的是很笨. 2.使用字符串函数split >>> a = ''.join(a.split()) >>> print(a) helloworld 3.使用正则表达式 >>> import re >>> strinfo = re.compil
随机推荐
- Sqlserver2005日志文件太大如何减小
- Asp.Net 网站性能优化之缓字决 (上) 缓冲写数据
- jQuery通过控制节点实现仅在前台通过get方法完成参数传递
- Node.js中Request模块处理HTTP协议请求的基本使用教程
- Oracle 12C实现跨网络传输数据库详解
- PHP转换IP地址到真实地址的方法详解
- 配置eAccelerator和XCache扩展来加速PHP程序的执行
- 怎么利用c#修改services的Startup type
- C基础 寻找随机函数的G点详解
- JS+CSS设置img在DIV中只显示Img垂直居中的部分
- jquery手风琴特效插件
- 让jQuery与其他JavaScript库并存避免冲突的方法
- JavaScript运动框架 解决速度正负取整问题(一)
- Java获取任意http网页源代码的方法
- PHP使用者状态管理功能的应用
- Java日期时间格式化操作DateUtils 的整理
- C语言 常量,变量及数据详细介绍
- 变量定义与声明的区别详细解析
- PHP unlink与rmdir删除目录及目录下所有文件实例代码
- 利用arcgis的python读取要素的X,Y方法