Есть ли инструкция ожидания в c-компоненте? например, подождите 0,5 секунды, прежде чем продолжить процесс?утверждение ожидания в C-компоненте?
спасибо!
Есть ли инструкция ожидания в c-компоненте? например, подождите 0,5 секунды, прежде чем продолжить процесс?утверждение ожидания в C-компоненте?
спасибо!
В POSIX есть
usleep(500);
и
nanosleep(...);
взглянуть на руководство по usleep(3)
и nanosleep(2)
. EDIT: nanosleep
кажется, теперь, чтобы идти, usleep
даже устарел в POSIX.2008
в соответствии с его страницей!
Для Windows есть эта функция доступна в API
Sleep(500);
Взгляните на его MSDN странице. Он спит в течение заданного количества миллисекунд.
Сон также доступен в POSIX, разница в том, что аргумент указывает число секунд вместо миллисекунд, процесс должен спать.
Обратите внимание, что использование функции sleep() может не работать должным образом, если вы также используете будильник(). –
Суммируя и исправить незначительные проблемы в должности Иоганна Вайса (не немецкая клавиатура, извините):
В старой школе POSIX, вы можете использовать функцию USleep(), которая принимает число микросекунд спать как целочисленный аргумент без знака. Таким образом, чтобы спать в течение полсекунды, вы бы назвали:
#include <unistd.h>
usleep(500000); /* Five hundred thousand microseconds is half a second. */
Для программ новее POSIX-стиле (мой Gentoo Linux окно»страницы человека говорит, что это POSIX.1-2001), вы будете использовать nanosleep (), для чего требуется указатель на структуру, удерживающую период ожидания. Спящий на полсекунды будет выглядеть следующим образом:
#include <time.h>
struct timespec t;
t.tv_sec = 0;
t.tv_nsec = 500000000; /* Five hundred million nanoseconds is half a second. */
nanosleep(&t, NULL); /* Ignore remainder. */
Второй аргумент nanosleep() называется «гет», и получает остаток от времени, если сон как-то прерывается. Здесь я оставил его в NULL для простоты. Вы можете сделать цикл до тех пор, пока не будет (достаточно близко) до нуля, чтобы убедиться, что вы действительно спали, независимо от каких-либо перерывов.
Какую операционную систему вы программируете? –
Что вы подразумеваете под C-компонентом? – starblue