我试图让我的程序在退出之前将控制台应用程序的输出记录到文本文件。这是启动控制台应用程序(tool.exe)的GUI程序。问题是我正在使用CTRL + C来退出控制台应用程序。这个控制台应用程序也不能改变。我已经尝试了几个方法来做到这一点,但似乎没有任何工作(tool.exe> output.txt)。C++在退出WINAPI之前将控制台输出保存到文本文件中(无MFC)
任何人都可以指出我采取哪种方法的正确方向?这将不胜感激。
编辑:
被创建的文件,但它是空的,没有接收到任何数据。我注意到的事情是,如果我自己从命令行运行该工具,它会起作用。例如。 c:\>tool.exe > output.txt
但是,当它从我的GUI应用程序执行时,这不起作用。
这里是我用来执行该工具中的代码:
strcpy (tool, "\" start /D \"");
strcat (tool, toolLocation);
strcat (tool, "\" tool.exe > output.txt\"");
system (tool);
这将tool.exe运行,并创建output.txt的罚款,但不会产生任何输出到文件中。
EDIT2:
我认为什么是真正发生的是,因为我使用start
,该>output.txt
是outputing start
代替tool.exe
。这可以解释为什么它会创建空文件。开始只是运行一个新的命令行,然后运行tool.exe
。问题是,我现在怎么解决这个问题?
我刚刚试过''ping stackoverflow.com/t> test.txt'',用Ctrl-C结束它,它的工作原理应该如此。 –
@Agent_L'ping'处理中断信号并在退出前输出最终结果。 – Drise
@Drise很久以前,文件在旅途中随时更新。 –