我有一个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