Нано сна команда в Perl - PullRequest
       1

Нано сна команда в Perl

2 голосов
/ 18 июля 2011

Я пытаюсь Perl скрипт с использовать Time :: HiRes qw (gettimeofday tv_interval usleep);

USleep (9,098888) USleep (9.091111)

мой скрипт содержит, помимо команд выше, мне нужно пояснить, что, сколько раунд усли будет делать? как вместо этого использовать nanosleep? (в каком количестве это будет?)

Заранее спасибо, Saranyya

1 Ответ

5 голосов
/ 18 июля 2011

Ответ на этот вопрос зависит от вашей платформы.

В моей собственной системе Linux, Perl usleep уже вызывает nanosleep:

$ strace -- perl -le 'use Time::HiRes; Time::HiRes::usleep(1);' 2>&1 | tail
open("/usr/share/perl/5.10/Exporter/Heavy.pm", O_RDONLY) = 4
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff375a5740) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = 0
read(4, "package Exporter::Heavy;\n\nuse st"..., 4096) = 4096
read(4, "nd without a leading &.\n\t    # ("..., 4096) = 2250
read(4, "", 4096)                       = 0
close(4)                                = 0
close(3)                                = 0
nanosleep({0, 1000}, NULL)              = 0
exit_group(0)                           = ?

(На самом деле, я уверен, чтоusleep из библиотеки C вызывает nanosleep внутри.)

Фактическое разрешение, которое вы можете ожидать, зависит от вашей конкретной платформы.Эти функции сна могут иметь разрешение, измеренное в миллисекундах (особенно для длительных снов), и они всегда пытаются округлить.

Если вы укажете точную версию вашего оборудования и операционной системы,кто-то может найти для вас эффективное разрешение nanosleep.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...