我有一个C程序。我希望它在特定点运行并停止,并让python脚本在停止时执行一些操作。你知道吗
我所做的是把这条线放在C程序的停止点上:
kill(getpid(), SIGSTOP);
如果我的python代码有以下行:
subprocess.call("./prog");
它永远被卡住,因为C程序永远不会终止。你知道吗
如果我用这个:
subprocess.Popen("./prog");
它在代码部分完成之前恢复。你知道吗
如何检查子进程是否已停止? 还是有别的解决办法? 对我来说保持C程序运行是非常重要的。你知道吗
谢谢你, 玛丽娜
我不知道您的目的是什么,如果要检查子进程的状态,请使用^{} ,如果要等待它停止,请使用^{} 。你知道吗
或者你需要定期检查它的状态?如果是,请尝试^{} 。你知道吗
为了使Python脚本的执行与子C进程同步,您可以使用通信,例如,在Python执行某些操作时,将一个字节写入C程序中的stdout
putchar('\0')
,并尝试读回一个chargetchar()
以继续执行,在Python脚本中则相反:读取一个字节,开始做某事,并将字节写入信号C程序以继续:要在C中解除缓冲标准输出,请在C程序的最开始处调用:
否则,在显式调用
fflush()
或相应的缓冲区溢出之前,Python程序不会看到任何输出。你知道吗相关问题 更多 >
编程相关推荐