Я искал везде перед публикацией, но не смог найти ответ ..
Мне нужно вычислить некоторую статистику (Avg, St. Dev. И т. Д.) Для времени выполнения алгоритма, поэтому у меня есть эта программа на c ++ (bb.exe), которая запускает алгоритм и выводит время комп. .
Всякий раз, когда я запускаю эту программу из оболочки, это занимает время, но работает нормально.
Поскольку выполнение не очень быстрое, я написал программу на c (CalculateStat), которая использует вызов system ()
system("bb.exe > output.txt");
для многократного выполнения предыдущего алгоритма, а затем вычисляет необходимую статистику, поэтому я могу просто запустить "./CalculateStat" и вернуться через несколько часов, чтобы увидеть результаты.
CalculateStat выводит (в стандартном выводе) каждую строку, напечатанную bb.exe.
Проблема в том, что когда CalculateStat запускает bb.exe, случается, что bb.exe зависает без причины (зависает примерно 2 раза каждые 6 вычислений), поэтому я должен убить его (ctrl + c), чтобы запустить CalculateStat .
Сначала я подумал, что это может быть проблемой из-за системного вызова, поэтому я написал Perl-скрипт, который делал почти то же самое, но у меня возникла та же проблема.
У кого-нибудь есть предложение?
EDIT--
Я подумал, что проблема может быть в одновременном доступе к выходному файлу, поэтому я удалил из «CalculateStat» часть, читающую файл, оставив только последовательные вызовы. Но он все равно зависает
РЕДАКТИРОВАТЬ 2--
Ничего себе ... Это просто стало слишком странно, поэтому я просто продолжал пытаться вызвать оригинальный bb.exe из терминала, и он тоже там завис по статистике замерзло началось ..)
В любом случае, сейчас нет смысла в этом вопросе. Извините всех: (