第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在不退出python的情況下退出python程序內(nèi)部的c子程序

如何在不退出python的情況下退出python程序內(nèi)部的c子程序

一只斗牛犬 2023-01-04 10:09:15
我有一個 python 程序,它使用CFFI. python程序多次循環(huán)執(zhí)行c程序。但是exit(0)在一定條件下a被用在了c中。因此,一旦exit(0)in C 正在執(zhí)行,python 也會自行終止。但我試圖實現(xiàn)的是,如果 c 程序被執(zhí)行并退出exit(0)甚至正常終止,python 程序應(yīng)該繼續(xù)運行。除了多處理之外,任何人都知道如何做到這一點?或者可以exit(0)用其他代碼代替?非常感謝。python.py:ffi = FFI()lib = ffi.dlopen("mylib.so")ffi.cdef ("int function1(int my_value);")mylib_value = 10;mylib_value = ffi.cast('int', my_value)for i in range(10):    lib.function1(mylib_value)mylib.c:int function1(int mylib_value):    ...    if(certain condition)        exit(0);    else        continue...    ...代碼類似于上面。在循環(huán)內(nèi)部,當i=0, c 執(zhí)行時exit(0),然后 python 程序也退出。我希望 c 在沒有 python 存在的情況下退出,以便它將繼續(xù)運行以下循環(huán)。
查看完整描述

1 回答

?
30秒到達戰(zhàn)場

TA貢獻1828條經(jīng)驗 獲得超6個贊

最好的方法是從你的函數(shù)中返回一些東西并在你的 python 代碼中處理它。


例如:


# main.py

import cffi



ffi = cffi.FFI()

lib = ffi.dlopen('my_lib.so')



ffi.cdef("int function1(int my_value);")



for i in range(10):

    print(f"testing my function with value: {i}")


    mylib_value = ffi.cast('int', i)

    ret_value = lib.function1(mylib_value)

    if ret_value == -1:

        print("c code exited before completing")

    else:

        print("c code exited normally")


// main.c

int function1(int my_value) {

    if (my_value == 1)

        return -1;


    // My code here


    return my_value;

}

運行exit(0)確實會終止你的 python 執(zhí)行。


查看完整回答
反對 回復(fù) 2023-01-04
  • 1 回答
  • 0 關(guān)注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號