【发布时间】:2011-06-24 19:31:01
【问题描述】:
我有一个可执行文件oo.exe,输入为1或2,所以在命令提示符下,我可以写
oo 1
oo 2
我还进行重定向以将输出打印到文本文件。
我正在使用 MATLAB 中的 system 命令做同样的事情。
system('oo 1 >> op.txt');
system('oo 1 >> op.txt');
除了 .exe 崩溃之外,一切正常。当 *.exe 因第一行而崩溃时,我希望文本将被打印到op.txt 中的崩溃点,并且第二行(参数2)将正常执行(假设参数2 没有崩溃) .
但是这不会发生,即使第二行正常执行,也不会打印任何内容。
但是,如果我在两个连续命令中从命令提示符处执行相同操作,则一切正常。我尝试通过编写批处理文件 test.bat 并使用 system 从 MATLAB 调用它来进行欺骗,但无济于事。
实际上,当我从命令提示符运行此 bat 文件时,在第二次执行时,出现了一条消息,指出文件 op.txt 已锁定。
只是告诉你,这一切只有在崩溃时才会发生。
有人有什么建议吗?
【问题讨论】:
-
我尝试直接从窗口命令提示符调用 test.bat,我遇到了同样的问题。虽然我无法解决问题,但似乎问题与缓冲区有关,缓冲区会以某种方式损坏,或者当程序因崩溃而退出时,无论缓冲区是否为空,它都会清除缓冲区。