Вот что я использую
ls -d1 /Directory/Path/*;
Да - более старые стандарты POSIX определены usleep ()
, поэтому это доступно в Linux:
int usleep (useconds_t usec);
ОПИСАНИЕ
Функция usleep () приостанавливает выполнение вызывающего потока на (как минимум) микросекунды usec. Сон можно немного продлить, если любой активности системы или времени, потраченного на обработку вызова, или детальность системных таймеров.
usleep ()
занимает микросекунды , поэтому вам придется умножить ввод на 1000, чтобы засыпать в миллисекундах.
usleep ()
имеет поскольку устарела и впоследствии была удалена из POSIX; для нового кода предпочтительнее nanosleep ()
:
#include
int nanosleep (const struct timespec * req, struct timespec * rem); ОПИСАНИЕ
nanosleep ()
приостанавливает выполнение вызывающего потока до тех пор, пока не истечет время, указанное в* req
, либо доставка сигнала, запускающего вызов обработчика в вызывающий поток или завершающий процесс.Структура timespec используется для указания интервалов времени с точностью до наносекунды. Он определяется следующим образом:
struct timespec { time_t tv_sec; / * секунды * / long tv_nsec; / * наносекунды * / };
Пример функции msleep ()
, реализованной с использованием nanosleep ()
, продолжающей спящий режим, если он прерван сигналом:
int msleep(long msec)
{
struct timespec ts;
int res;
if (msec < 0)
{
errno = EINVAL;
return -1;
}
ts.tv_sec = msec / 1000;
ts.tv_nsec = (msec % 1000) * 1000000;
do {
res = nanosleep(&ts, &ts);
} while (res && errno == EINTR);
return res;
}
#include <unistd.h>
int usleep(useconds_t useconds); //pass in microseconds
В качестве альтернативы usleep ()
, который не определен в POSIX 2008 (хотя он был определен до POSIX 2004 и, очевидно, доступен в Linux и других платформах с история соответствия POSIX), стандарт POSIX 2008 определяет nanosleep ()
:
nanosleep
- сон высокого разрешения#include
int nanosleep (const struct timespec * rqtp, struct timespec * rmtp); Функция
nanosleep ()
должна вызывать приостановку выполнения текущего потока до тех пор, пока либо не истечет временной интервал, указанный в аргументеrqtp
, либо сигнал не будет доставлен вызывающему thread, а его действие - вызвать функцию перехвата сигналов или завершить процесс. Время приостановки может быть больше запрошенного, поскольку значение аргумента округлено до целого числа, кратного разрешающей способности сна, или из-за планирования других действий системой. Но, за исключением случая прерывания сигналом, время приостановки не должно быть меньше времени, указанного вrqtp
, измеренного системными часами CLOCK_REALTIME.Использование
] nanosleep ()
не влияет на действие или блокировку любого сигнала.
Помимо usleep , скромный select с NULL наборами файловых дескрипторов позволит вам делать паузы с точностью до микросекунд и без риска SIGALRM
осложнения.
sigtimedwait и sigwaitinfo предлагают аналогичное поведение.