|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|||||||||||||||||||||
Остановка выполнения программы на C++16.11.2019, 21:49. Показов 10558. Ответов 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 | |
|
Как реализовать задержку выполнения определённой части программы без полной задержки всей программы?
Последовательность выполнения программы Очерёдность выполнения программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|