我有一個c程序,基本上是運行在無限循環中,如下圖所示:While
。如何在LinuxOS中從python腳本運行/停止c程序?
int main(int argc, char** argv)
{
Detectdirection *d;
//Mosquitto
io_service io;
deadline_timer t(io);
MosquitoInterface *m = new MosquitoInterface(t);
d = new Detectdirection();
while(true)
{
int ret = d->Tracking();
if(ret < 0)
cout << "Pattern is not found" << endl ;
}
delete d;
delete m;
cout << "Exit" << endl;
return 0;
}
我喜歡從python腳本運行和停止程序。運行該程序非常簡單。只需提供一個路徑到構建文件,如討論here。
但是我怎樣才能停止Pyhton的應用程序,以便這些創建的對象被正確刪除。
你不能。如果你殺死了這個程序,這些對象將不會被正確的破壞。內存將被釋放,但它們的析構函數將不會被調用。唯一的方法是以某種方式結束循環並讓程序以正常方式退出。我建議你看看其他守護進程怎麼做。 –
這是來自boost ASIO的'io_service'嗎,實際上你可能有一個異步任務正在等待我在我的答案中描述的那些消息之一。 – Lanting