|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|||||||||||||||||||||
Остановка выполнения программы на C++16.11.2019, 21:49. Показов 10597. Ответов 62
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане! Столкнулся со следующей проблемой. Сейчас работаю над проектом (отправка кодов решений на C++ и их проверка на сервере с помощью PHP). Получается отправить программу из окна редактора и проверить ее с помощью тестов, а также замерить время выполнения каждого теста, но возникает проблема, замер времени происходит только после запуска и завершения программы, а мне нужно выйти из нее до ее завершения по исчечении 1-2 секунд (то есть, обработать ошибку TLE (Time Limit Exceeded)). Средставми PHP этого достигнуть не получается, так как необходим выход из программы до ее завершения. Поэтому, я решил делать остановку внутри кода на C++. Я никогда раньше не делал такого и нужно приблизительно следущее:
Код программы на C++:
Очень буду благодарен за ваш ответ, так как мы сами пока не знаем что делать. Добавлено через 39 минут Получилось сделать замер в начале и конце программы, но я не уверен, что это наилучший вариант. Вот, что получилось:
0
|
|||||||||||||||||||||
| 16.11.2019, 21:49 | |
|
Ответы с готовыми решениями:
62
Остановка выполнения консольной программы без system("pause")
Полная остановка программы |
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||
| 18.11.2019, 21:40 [ТС] | ||
|
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 18.11.2019, 21:43 | ||
|
А я говорю, что либы буста, скомпилированные у вас, от другого компилятора, не подходящего к вашему. Разбирайтесь.
0
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 21:48 [ТС] | |
|
DrOffset, насчет этой ошибки: error: 'this_thread' has not been declared
Советуют использовать: "Use MinGW with POSIX threads", но я не знаю, что это значит.
0
|
|
|
Just Do It!
|
|||
| 18.11.2019, 21:54 | |||
|
а щас уже gcc4.9.2 ![]() MinGW TDM 4.9.2 64 и 32 версии (те что стандартно уже лет 5 идут вместе с Dev C++) всё работает. на кодеблоке проверить версию стандарта здесь:
0
|
|||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 21:54 [ТС] | |
|
DrOffset, У меня рядом компьютер с Ubuntu стоит. Говорят, что такой проблемы там нет. Сейчас попробую запустить еще там и вам отпишусь.
0
|
|
|
Just Do It!
|
|
| 18.11.2019, 21:57 | |
|
вот ссылка(иде вместе с компилятором 4.9.2)
https://sourceforge.net/projec... 0Releases/ за 5 лет проверено, работает всё как часы(в плане компиляции)
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||||
| 18.11.2019, 21:59 | |||||
![]() ТС сам уже подтвердил, что не помогло. Зачем вы тратите мое время на эти бесполезные споры? ![]() Добавлено через 1 минуту
0
|
|||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 18.11.2019, 22:14 | ||
|
Fixer_84, с Windows всегда проблемы, если пытаться собирать себе окружение по кусочкам. Лично я уже наелся этих приколов с зависимостями еще в 2005 году, к сожалению тогда не было замечательного MSYS2 (убогий MSYS(1) без пакетного менеджера не в счет).
Еще ни один человек, которому я насоветовал отказаться от отдельных MinGW и библиотек к нему в пользу единого окружения MSYS2, не жаловался А их уже, посчитать если, больше 10 человек тут.Добавлено через 4 минуты Первая всегда была стабильней и появилась раньше. С++11, std::thread и Со, которые поддерживается в minGW, должны быть реализованы посредством одной из этих моделей. TDM реализуется через posix model (pthreads).
1
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 22:17 [ТС] | |
|
DrOffset, сейчас запустил код из поста 30 на Ubuntu. Всего одна ошибка осталась - эта:
Undefined reference to 'pthread_create' Снимок сделать пока не могу, не знаю что нужно для этого в Ubuntu. Я еще boost установлю и вам отпишусь.
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 18.11.2019, 22:25 | ||
|
XLAT, откройте установленный по ссылке, которую вы дали, каталог bin в mingw и увидите там библиотеки libwinpthread-1.dll или libwinpthread_64-1.dll. Или обе сразу, я уже не помню. В общем, это то, о чем я сказал чуть выше.
https://stackoverflow.com/ques... x-vs-win32 Добавлено через 1 минуту -pthread.
1
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 23:05 [ТС] | |
|
DrOffset, извините, но я этих тонкостей почти не знаю. Где именно это нужно прописать?
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 18.11.2019, 23:10 | ||
|
Если в CodeBlocks, то на вкладке Linker settings, в окошке Other Linker Options.
1
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 23:31 [ТС] | |
|
DrOffset, мне удалось запустить вашу программу. Если у меня возникнут дополнительные вопросы по ее работе, я могу к вам обратиться?
Добавлено через 1 минуту DrOffset, Также, я попробую запустить программу с boost и вам обязательно отпишусь. Спасибо большое, что помогли.
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 18.11.2019, 23:35 | ||
|
Для использования в боевом режиме его все равно нужно еще модифицировать. Добавить возможность сигнализировать о статусах работы в вызывающее окружение (в php, я так понимаю), добавить обработку исключений, чтобы программа не падала, если пользовательский код каким-то образом будет их кидать, для Linux я бы еще добавил обработку сигналов.
1
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 20.11.2019, 00:39 [ТС] | |
|
XLAT, здравствуйте! Ваш код из поста 29 рабочий. Я только что запустил его. Спасибо вам! Сейчас ложусь спать не могу больше разговаривать.
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 20.11.2019, 00:46 [ТС] | |
|
DrOffset, здравствуйте! Установил библиотку boost на Ubuntu, запустил, проверил, она работает, но ваш код с boost выдает ошибки. Вот скриншот. Я сейчас спать ложусь, только завтра смогу увидеть ваш ответ. Спасибо за ваш труд.
0
|
|
|
Just Do It!
|
|
| 20.11.2019, 01:21 | |
|
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 20.11.2019, 08:39 | |
|
del
0
|
|
| 20.11.2019, 08:39 | |
|
Как реализовать задержку выполнения определённой части программы без полной задержки всей программы?
Последовательность выполнения программы Очерёдность выполнения программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Теория всего 6. Судьба неотвратима?
anaschu 21.07.2026
Математическое доказательство Судьбы: Точка бифуркации в едином тензорном ядре Модели ВсегоСвежее обновление питоновского ядра «Soil Chemistry 2. 0» дало нам неопровержимое математическое. . .
|
Теория всего 5. ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли
anaschu 21.07.2026
Единое ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли
Главная задача «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы» (аттракторов. . .
|
сукцессия 37. Внедрил дипсик в свой оркестр из ИИ. У него закончилось пространство чата, потому опубликую выводы из его работы здесь
anaschu 21.07.2026
====================================================================
КОНТЕКСТ: Моделирование микоризной сукцессии (AM → ECM)
====================================================================
. . .
|
сукцессия 36. Делаю прогоны модели около порога бифуркации (превращения эндо микоризы в экто микоризу)
anaschu 21.07.2026
СУКЦЕССИЯ МИКОРИЗ: КАК МАТЕМАТИКА ОБЪЯСНЯЕТ ПОДЗЕМНУЮ ВОЙНУ
Мы привыкли думать, что лес — это деревья. А грибы — это то, что мы собираем в корзинку осенью. Но если заглянуть под землю, окажется,. . .
|
|
ИИ и человечность
kumehtar 21.07.2026
Забавно, что общаясь с ИИ, я замечаю, насколько он высказывается умно, и насколько верит в людей. Он умеет прощать. Он знает как отвечать не обесценивая опыт других людей, даже если сам не верит. Он. . .
|
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного.
1. Почему показания термометра заряжены целью?
Цель заложена в самом. . .
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|