Добрый день сообщество. Сегодня я хочу спросить у вас: "Возможно ли написать код на C++, который запускает другую программу на "test.txt" и проверяет её на превышение лимита времени, а также останавливает её если она отработала более 1-ой секунды?". Я искал ответ на этот вопрос у chat-gpt и gemini, но ничего стоящего они мне не выдали. Если вы знаете ответ на этот вопрос, то подскажите как это написать, а если вы ещё напишите код, то честь вам и хвала. Заранее спасибо.
this is gemini's answer for your question hope this will help
Ты же понимаешь что эта программа не останавливает мою в случае превышения лимита времени. P.S. Представь что моя программа это while(true).
В данной постановке задача сводится к запуску секундомера, как указали выше (на смартфоне или в программе). Но в более общем случае (остановится ли программа хоть когда-то) решения не существует. Это называется проблема остановки, и она не разрешима на машине Тьюринга.
То есть вы утверждаете что я не могу запустить, например main.cpp через builder.cpp и в случае, когда main.cpp отработает больше одной секунды завершить main.cpp и вернуть "time_limit". Данное утверждение звучит крайне сомнительно.
Нет. Я утверждаю, что в общем случае ваш скрипт не сможет определить, отработает ли main.cpp за конечное время. Тут речь не про 1, 2 или 5 секунд.
в C++20 добавили корутины, с ними это реализуемо, изучай
Интересно, обязательно поинтересуюсь, что это такое и что из себя представляет.
man fork
,man exec
. Код, надеюсь, сможешь самостоятельно написать.Ограничение на процессорное время можно выставить через
setrlimit
.Спасибо за ваш ответ думаю, что смогу.