2016-07-25 37 views
0

是否存在從Python組件調用C代碼的引用方法?我正在向REDHAWK移植一個調用C代碼程序(帶有「主要」入口點和參數列表)的csh腳本。我更喜歡將csh腳本實現爲一個Python組件,我稱之爲C代碼程序。REDHAWK Python組件調用傳統的C代碼

夫婦的注意事項:

  1. 我熟悉GNU收音機痛飲這樣做。
  2. 我承認將整個系統重新構建爲連接的SDR組件的問題越來越多,但仍然存在基本的C-from-Python問題。

回答

-1

這是一個有趣的問題。您有權訪問傳統「主」應用程序的源代碼嗎?你關於SWIG的陳述會建議你這樣做。如果這樣做,最好的方法可能是使用REDHAWK手冊的Section 4.9中討論的共享庫模式。 SWIG或共享庫方法的問題在於,它們需要重構遺留的C應用程序纔能有效地成爲共享庫。如果傳統只是某種形式的批處理器,它接收命令和數據並推出結果,那麼最好使用fork/exec範例。我在這裏做了大量的假設,但是如果你的遺留應用程序把它的輸出放在stdout上,你可以將它的stdout附加到你在組件shell中讀取的管道。

紅鷹GPP確實非常的事我上面提到的組件應用程序,你可以看到如何做到這一點here

我在回答這個做了很多假設。如果您提供有關您的限制的更多詳細信息,我可能可以細化答案。

其他思想:如果你決定你只是想要一個快速的結果,有以下問題「中的python-C-包裝換讀值變量參數 - 長」,可能會獲得在計算器上一個偉大的職位你啓動並運行REDHAWK生成的Python組件很快。我只是不確定如何從舊版應用中獲得任何結果。