如何通过写入其输入流退出“mysql.exe”进程(使用CreateProcess()创建的进程)

时间:2013-01-29 14:30:25

标签: c++ mysql

我正在尝试从Windows API使用mysql.exe优雅地退出CreateProcess()。我的问题是mysql.exe没有被杀死。如果我在主线程休眠一段时间后终止进程,那么我正在写入其INPUT流(使用管道)的数据库“转储”未正确应用。

我发送FLUSH TABLES; EXIT;作为输入流的最后一个命令。

2 个答案:

答案 0 :(得分:1)

请勿使用TerminateProcess终止该进程。

而是发送FLUSH_TABLES; EXIT;命令,然后使用WaitForSingleObject(hProcess)等待它完成正在执行的操作。

答案 1 :(得分:0)

两个答案:

  1. 写入输入文件流时使用FLUSH TABLES;EXIT;\n。工作正常

  2. 继承句柄 使用安全属性和SetHandleInformation()。请参阅msdn了解