В C я хочу, чтобы блок операторов выполнялся многократно каждые t секунд. Как мне это сделать?
Этого нельзя сделать в стандартном C, вам нужно использовать какой-то специфичный для платформы API.
Одним из популярных вариантов является функция POSIX '<a href="http://www.opengroup.org/onlinepubs/000095399/functions/alarm.html" rel="nofollow noreferrer">alarm()</a>.
<a href="http://www.opengroup.org/onlinepubs/000095399/functions/alarm.html" rel="nofollow noreferrer">alarm()</a>
Это «чистое» асинхронное решение. Конечно, можно измерять и обрабатывать время другими способами, но они все еще зависят от платформы. Вы можете использовать <a href="http://www.opengroup.org/onlinepubs/000095399/functions/sleep.html" rel="nofollow noreferrer">sleep()</a> (снова POSIX), чтобы просто заблокировать. Если вы объедините это с желаемыми операторами в цикле, это тоже должно сработать.
<a href="http://www.opengroup.org/onlinepubs/000095399/functions/sleep.html" rel="nofollow noreferrer">sleep()</a>
Вам потребуется создать поток или процесс, который запускает цикл, содержащий запрос ожидания.
Если ваше приложение работает в Windows, вместо этого вы можете использовать функцию SetTimer .
Согласитесь с рекомендацией размотки будильника (), но не забудьте установить еще один будильник () после завершения блока периодической обработки.