Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试mysql.exe优雅地退出,它是使用CreateProcess()Windows API 创建的。我的问题是mysql.exe没有被杀死。如果我在主线程休眠一段时间后终止该进程,那么我正在写入其 INPUT 流(使用管道)的数据库“转储”不会正确应用。
mysql.exe
CreateProcess()
我将FLUSH TABLES; EXIT;作为最后一个命令发送到输入流。
FLUSH TABLES; EXIT;
不要使用TerminateProcess.
TerminateProcess
而是发送你的FLUSH_TABLES; EXIT;命令,并使用WaitForSingleObject(hProcess)它来等待它完成它正在做的事情。
FLUSH_TABLES; EXIT;
WaitForSingleObject(hProcess)
两个答案:
FLUSH TABLES;EXIT;\n在写入输入文件流时使用。工作正常
FLUSH TABLES;EXIT;\n
继承句柄使用安全属性和SetHandleInformation(). 这个请参考msdn
SetHandleInformation()