вызов исполняемого файла из функции Matlab, обработка сбоев - PullRequest
0 голосов
/ 24 июня 2011

У меня есть исполняемый файл oo.exe, который принимает ввод как 1 или 2, поэтому в командной строке я могу написать

oo 1
oo 2

Я также делаю перенаправление для печати вывода в текстовый файл.

Я делаю то же самое, используя команду system из MATLAB.

system('oo 1 >> op.txt');
system('oo 1 >> op.txt');

Все отлично работает, кроме случаев, когда происходит сбой .exe. Когда происходит сбой * .exe, скажем, в первой строке, я ожидаю, что текст будет напечатан до точки сбоя в op.txt, а вторая строка (аргумент 2) будет работать нормально (при условии отсутствия сбоя для аргумента 2) , Однако этого не происходит, даже когда вторая строка выполняется нормально, ничего не печатается.

Однако, если я делаю то же самое из командной строки в двух последовательных командах, все работает нормально. Я попытался обмануть, написав командный файл test.bat и вызвав его из MATLAB, используя system, но безрезультатно. Действительно, когда я запустил этот bat-файл из командной строки, при втором запуске пришло сообщение, что файл op.txt заблокирован.

Просто скажу вам, что все это происходит только при аварии.

у кого-нибудь есть предложения?

1 Ответ

0 голосов
/ 05 августа 2011

Поставьте попытку уловить системный вызов.Похоже, что это может привести к ошибке, которая вызывает сбой сценария.

try
system('oo 1 >> op.txt');
catch
end

try
system('oo 2 >> op.txt');
catch
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...