gpt4 book ai didi

python - 如何在 LinuxOS 中从 python 脚本运行/停止 c 程序?

转载 作者:太空狗 更新时间:2023-10-29 20:35:49 25 4
gpt4 key购买 nike

我有一个 C 程序基本上在无限 While 循环中运行,如下所示。

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 停止应用程序,以便正确删除那些创建的对象。

最佳答案

您需要在进程之间进行通信。

向进程发送信号(并在可执行文件中捕获该信号)是执行此操作的常用方法。

从 python 发送信号:How to terminate a python subprocess launched with shell=True

处理信号: Signal Handling in C

或者,您可以使用更高级的技术来发送消息(例如 zeromq Understanding ZeroMQ 、dbus https://stackoverflow.com/questions/tagged/dbus 或 COM COM, COM+, DCOM, where to start? )

这里的关键词是进程间通信。它有自己的维基百科文章 https://en.wikipedia.org/wiki/Inter-process_communication

关于python - 如何在 LinuxOS 中从 python 脚本运行/停止 c 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40862411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com