Python python 呼叫c語言函式

2021-09-07 15:03:53 字數 739 閱讀 8907

雖然python是萬能的,但是對於某些特殊功能,需要c語言才能完成。這樣,就需要用python來呼叫c的**了

具體流程:

c編寫相關函式 ,編譯成庫

然後在python中載入這些庫,指定呼叫函式。

這些函式可以char ,int, float, 還能返回指標。

以下示例:

通過python呼叫c函式,返回"hello,world 字串"

新建c語言檔案 hello.c

touch hello.c

#include char*get_str() 

編譯成庫

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 Python呼叫shell的方法

1.1 os.system command 在乙個子shell中執行command命令,並返回command命令執行完畢後的退出狀態。這實際上是使用c標準庫函式system 實現的。這個函式在執行command命令時需要重新開啟乙個終端,並且無法儲存command命令的執行結果。1.2 os.pop...

遞迴呼叫python python生成器,遞迴呼叫

生成器 什麼是生成器 只要在函式體內出現yield關鍵字,那麼再執行函式就不會執行函式 會得到乙個結果,該結果就是生成器 生成器就是迭代器 yield的功能 yield為我們提供了一種自定義迭代器物件的方法 yield與return的區別 1.yield可以返回多個值 2.函式暫停和再繼續是由yie...

c 呼叫lua,lua呼叫c

建立工程 引用lua的動態庫和工程專案的配置資訊 結合 main.lua指令碼檔案 print lua呼叫c lua呼叫c 結合部分 c 向lua堆疊寫東西 通過lua堆疊 lua通過lua全域性標量獲取返回lua堆疊再到c lua傳遞數字給c cgivelua wangcheng 22,1 lua...