python 調(diào)用c語(yǔ)言函數(shù)的方法
雖然python是萬(wàn)能的,但是對(duì)于某些特殊功能,需要c語(yǔ)言才能完成。這樣,就需要用python來(lái)調(diào)用c的代碼了
具體流程:
c編寫(xiě)相關(guān)函數(shù) ,編譯成庫(kù)
然后在python中加載這些庫(kù),指定調(diào)用函數(shù)。
這些函數(shù)可以char ,int, float, 還能返回指針。
以下示例:
通過(guò)python調(diào)用c函數(shù),返回"hello,world 字符串"
新建c語(yǔ)言文件 hello.c
touch hello.c
#include <stdio.h>
char *get_str()
{
return "hello,world"
}
編譯成庫(kù)
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))
執(zhí)行python腳本
[feng@arch python_c]$ python test.py hello,world
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解django+django-celery+celery的整合實(shí)戰(zhàn)
這篇文章主要介紹了詳解django+django-celery+celery的整合實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Python如何實(shí)現(xiàn)守護(hù)進(jìn)程的方法示例
護(hù)進(jìn)程:通常被定義為一個(gè)后臺(tái)進(jìn)程,而且它不屬于任何一個(gè)終端會(huì)話(terminal session)。許多系統(tǒng)服務(wù)由守護(hù)程序?qū)嵤?;如網(wǎng)絡(luò)服務(wù),打印等。 下面這篇文章給大家分享了Python是如何實(shí)現(xiàn)守護(hù)進(jìn)程的方法示例,需要的朋友可以參考借鑒。2017-02-02
Python用Bottle輕量級(jí)框架進(jìn)行Web開(kāi)發(fā)
這篇文章主要介紹了Python用Bottle輕量級(jí)框架進(jìn)行Web開(kāi)發(fā)的相關(guān)資料,需要的朋友可以參考下2016-06-06
基于python實(shí)現(xiàn)usb熱插拔檢測(cè)
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)用于在Linux系統(tǒng)中監(jiān)測(cè)USB設(shè)備的熱插拔,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-05-05
5款Python程序員高頻使用開(kāi)發(fā)工具推薦
這篇文章主要介紹了5款Python程序員高頻使用開(kāi)發(fā)工具,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
關(guān)于對(duì)python中進(jìn)程的幾個(gè)概念理解
進(jìn)程由程序,數(shù)據(jù)和進(jìn)程控制塊組成,是正在執(zhí)行的程,程序的一次執(zhí)行過(guò)程,是資源調(diào)度的基本單位,下面這篇文章主要給大家介紹了關(guān)于對(duì)python中進(jìn)程的幾個(gè)概念理解,需要的朋友可以參考下2021-10-10

