- [C++]аналог Sleep()?
- [C++]аналог Sleep()?
- Команда SLEEP — задать период ожидания.
- CMD/BAT: sleep штатными средствами cmd
- Сообщения 32
- 1 Тема от MegaScrew 2012-08-03 14:11:26 (изменено: MegaScrew, 2012-08-03 14:34:50)
- Тема: CMD/BAT: sleep штатными средствами cmd
- 2 Ответ от alexii 2012-08-03 15:12:06
- Re: CMD/BAT: sleep штатными средствами cmd
- 3 Ответ от MegaScrew 2012-08-03 15:34:04
- Re: CMD/BAT: sleep штатными средствами cmd
- 4 Ответ от alexii 2012-08-03 17:35:16
- Re: CMD/BAT: sleep штатными средствами cmd
- 5 Ответ от smaharbA 2012-08-03 19:38:28
- Re: CMD/BAT: sleep штатными средствами cmd
- 6 Ответ от smaharbA 2012-08-03 19:39:23
- Re: CMD/BAT: sleep штатными средствами cmd
- 7 Ответ от Smitis 2012-08-04 13:21:54
- Re: CMD/BAT: sleep штатными средствами cmd
- 8 Ответ от Rumata 2012-08-04 13:38:52
- Re: CMD/BAT: sleep штатными средствами cmd
- 9 Ответ от alexii 2012-08-05 12:07:42
- Re: CMD/BAT: sleep штатными средствами cmd
- 10 Ответ от MegaScrew 2012-08-06 09:56:23
- Re: CMD/BAT: sleep штатными средствами cmd
- 11 Ответ от smaharbA 2012-08-06 11:08:49
- Re: CMD/BAT: sleep штатными средствами cmd
- 12 Ответ от MegaScrew 2012-08-06 11:34:05
- Re: CMD/BAT: sleep штатными средствами cmd
- 13 Ответ от greg zakharov 2012-08-06 17:13:15 (изменено: greg zakharov, 2012-08-06 17:14:09)
- Re: CMD/BAT: sleep штатными средствами cmd
- 14 Ответ от smaharbA 2012-08-06 18:04:00 (изменено: smaharbA, 2012-08-06 18:04:30)
- Re: CMD/BAT: sleep штатными средствами cmd
- 15 Ответ от Serge Yolkin 2012-08-07 11:51:26
- Re: CMD/BAT: sleep штатными средствами cmd
- 16 Ответ от MegaScrew 2012-08-07 12:21:23
- Re: CMD/BAT: sleep штатными средствами cmd
- 17 Ответ от Serge Yolkin 2012-08-07 18:45:55
- Re: CMD/BAT: sleep штатными средствами cmd
- 18 Ответ от smaharbA 2012-08-07 20:12:21
- Re: CMD/BAT: sleep штатными средствами cmd
- 19 Ответ от greg zakharov 2012-08-07 21:00:15
- Re: CMD/BAT: sleep штатными средствами cmd
- 20 Ответ от smaharbA 2012-08-07 21:57:20
- Re: CMD/BAT: sleep штатными средствами cmd
- 21 Ответ от alexii 2012-08-08 01:50:31
- Re: CMD/BAT: sleep штатными средствами cmd
- 22 Ответ от MegaScrew 2012-08-08 10:26:09 (изменено: MegaScrew, 2012-08-08 10:47:25)
- Re: CMD/BAT: sleep штатными средствами cmd
- «На сон грядущий» или таймер выключения Windows из командной строки
- В большинстве своем всё новое это хорошо забытое старое.
- Есть всем известное выражение которое многим нравится:
- Мораль:
[C++]аналог Sleep()?
Здравствуйте немогу найти адекватный аналог функции Sleep (int ms);
#include usleep (5000);
ноль эффекта, также пробовал через пустой цикл, но это процессор-зависимое время сна получается.
usleep спит микросекунды.
А вообще ее вроде как стараются выкинуть. Используй nanosleep.
молодцы.. выкинуть. а вот допустим мне надо рандом srand(time(0)); и генерировать масив рандомных чисел, а то без паузы в секунду времени не получается разнообразный рандом.
ну а кто тебе сказал, что srand — хороший генератор?
А ты попробуй srand(time(0)+1) :>
Используй boost random
[C++]аналог Sleep()?
Привет! Если мне не изменяет память, то где то должна быть , там есть функции реализующие задержки. Вообщето не сильно глобальная у тебя проблема, можно черех таймер решить.
> а вот допустим мне надо рандом srand(time(0));
один раз, в начале мейн().
> генерировать масив рандомных чисел
Команда SLEEP — задать период ожидания.
Команда SLEEP входит в состав дополнительного пакета Resource Kit и используется в командных файлах для организации режима ожидания фиксированного интервала времени.
Формат командной строки:
sleep -m миллисекунды
SLEEP /? — отобразить краткую справку по использованию команды
sleep 10 установить режим ожидания 10 секунд.
sleep –m 2500 — установить интервал ожидания 2500 миллисекунд (2.5 секунды).
Для прерывания команды sleep можно использовать комбинации клавиш CTRL+C или CTRL+Break.
В качестве альтернативы команды sleep используется команда ping для петлевого интерфейса с указанием количества эхо-запросов, соответствующего длительности задержки в секундах. Поскольку эхо-запрос для петлевого интерфейса выполняется практически мгновенно, а интервал между запросами равен 1 секунде, такой способ вполне приемлем, и не требует установки Resource Kit или копирования утилиты sleep.exe для выполнения задержки на требуемый интервал времени.
Примеры выполнения задержек с использованием ping.exe :
ping –n 1 localhost > nul — задержка на 1 секунду. Перенаправление вывода на фиктивное устройство nul используется для подавления вывода утилиты ping.exe
ping –n 1 127.0.0.1 > nul — то же, но с указанием IP-адреса петлевого интерфейса.
В операционных системах Windows Vista и старше, для организации задержек при выполнении командных файлов можно использовать команду TIMEOUT
CMD/BAT: sleep штатными средствами cmd
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 32
1 Тема от MegaScrew 2012-08-03 14:11:26 (изменено: MegaScrew, 2012-08-03 14:34:50)
- MegaScrew
- Участник
- Неактивен
- Рейтинг : [ 0 | 0 ]
Тема: CMD/BAT: sleep штатными средствами cmd
задержка от 1 до 60 секунд
2 Ответ от alexii 2012-08-03 15:12:06
- alexii
- Разработчик
- Неактивен
Re: CMD/BAT: sleep штатными средствами cmd
3 Ответ от MegaScrew 2012-08-03 15:34:04
- MegaScrew
- Участник
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
Согласен, можно, но не всем этот способ подходит.
4 Ответ от alexii 2012-08-03 17:35:16
- alexii
- Разработчик
- Неактивен
Re: CMD/BAT: sleep штатными средствами cmd
5 Ответ от smaharbA 2012-08-03 19:38:28
- smaharbA
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
не всегда есть ип
6 Ответ от smaharbA 2012-08-03 19:39:23
- smaharbA
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
+ а в сабже крайне ужасный метод, на другом форуме посоветовал бы автору убить себя )
7 Ответ от Smitis 2012-08-04 13:21:54
- Smitis
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
Я так же согласен, что делать пауза при помощи пинга — ужасный метод. Самое плохое, что в большинстве случаев он работает. Но иногда такую паузу может выдать, что и близко к нужной не лежит.
8 Ответ от Rumata 2012-08-04 13:38:52
- Rumata
- Разработчик
- Неактивен
- Рейтинг : [ 31 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
Можно делать задержки с помощью JScript по «технологии» bat+jscript: два в одном
9 Ответ от alexii 2012-08-05 12:07:42
- alexii
- Разработчик
- Неактивен
Re: CMD/BAT: sleep штатными средствами cmd
Но иногда такую паузу может выдать, что и близко к нужной не лежит.
10 Ответ от MegaScrew 2012-08-06 09:56:23
- MegaScrew
- Участник
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
Но иногда такую паузу может выдать, что и близко к нужной не лежит.
пример, на слабом PC выполняющим роль сервака с обычной сетевухой, загруженного разными задачами.
Наблюдал случаи когда инфа от пинга поступает спустя 10 — 15 секунд11 Ответ от smaharbA 2012-08-06 11:08:49
- smaharbA
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
от пинга чего ? и зачем инфа ?
12 Ответ от MegaScrew 2012-08-06 11:34:05
- MegaScrew
- Участник
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
у меня есть старый ноут целерон 1200 озу 384 метра на котором стоит winxp pro sp3
при пинге 127.0.0.1 первая строчка появиться через 10 — 15 секунд остальные каждые 2 — 3 секунды (сидел замерял время) именно по этой причине стал искать другие варианты sleep.
Другой вариант нашел и выложил тут, кому надо те возьмут.13 Ответ от greg zakharov 2012-08-06 17:13:15 (изменено: greg zakharov, 2012-08-06 17:14:09)
- greg zakharov
- Разработчик
- Неактивен
- Рейтинг : [ 5 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
Я так же согласен, что делать пауза при помощи пинга — ужасный метод.
Так в чем же дело, используйте sleep.exe из набора Windows Server 2003 Resource Kit, забросив его в системную папку. Хотя если речь о стандартных средствах, то соглашусь с господином Rumata.
14 Ответ от smaharbA 2012-08-06 18:04:00 (изменено: smaharbA, 2012-08-06 18:04:30)
- smaharbA
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
15 Ответ от Serge Yolkin 2012-08-07 11:51:26
- Serge Yolkin
- Разработчик
- Неактивен
- Рейтинг : [ 1 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
MegaScrew
+40% к загрузке процессора (AMD A4-3310MX 2100 MHz, Win7Pro SP1) ?
И это для «старого ноута» или «слабого PC, выполняющего роль сервака» ??16 Ответ от MegaScrew 2012-08-07 12:21:23
- MegaScrew
- Участник
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
Serge Yolkin, предложите альтернативу без ping-а и sleep.exe из Resource Kit.
ИМХО:
Всегда в инструментах специалиста есть молоточек, молоток и кувалда и каждый специалист выбирает сам что ему использовать.Если есть предложения по оптимизации и упрощению кода давайте обсудим. Все остальное вода.
17 Ответ от Serge Yolkin 2012-08-07 18:45:55
- Serge Yolkin
- Разработчик
- Неактивен
- Рейтинг : [ 1 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
18 Ответ от smaharbA 2012-08-07 20:12:21
- smaharbA
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
в авторском коде преимущество с другими — нет старта внешнего приложения, но есть но — цикл не передает управление системе и сам жрет
19 Ответ от greg zakharov 2012-08-07 21:00:15
- greg zakharov
- Разработчик
- Неактивен
- Рейтинг : [ 5 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
Господа! а что вы именно разумеете под штатными средствами? Учитывая, что .NET Framework ныне стал необходимостью для большинства пользователей, можно использовать его возможности.
Может, подход несколько порочный, но у него есть один плюс — нет назгрузки на ЦП.
20 Ответ от smaharbA 2012-08-07 21:57:20
- smaharbA
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
так можно и дебагом не создавая файла
21 Ответ от alexii 2012-08-08 01:50:31
- alexii
- Разработчик
- Неактивен
Re: CMD/BAT: sleep штатными средствами cmd
в авторском коде … есть но — цикл не передает управление системе и сам жрет
Вот из-за этого он мне и не нравится — где же тут сам Sleep, так сказать?!
22 Ответ от MegaScrew 2012-08-08 10:26:09 (изменено: MegaScrew, 2012-08-08 10:47:25)
- MegaScrew
- Участник
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: CMD/BAT: sleep штатными средствами cmd
так можно и дебагом не создавая файла
что вы имеете в виду? разверните свою мысль в код пожалуйста. я жадный до знаний
В споре рождается истина ))
Предлагаю альтернативу которая не жрет ресурсы CPUPS:
У меня win7 Pro без ресурс кита и все работает. Проверьте кто может на других версиях OS windows.
PSS:
Посмотрел по хелпам MS на их сайте, вроде как timeout появился в составе cmd с Windows Server 2003
В windows XP SP3 его нет, проверил.«На сон грядущий» или таймер выключения Windows из командной строки
Ценность этой статьи скорее не в самом решении, а в напоминании как можно быстро решать простые задачи.
Но если Вам нужно простое решение — пожалуйста:
Сохраните в CMD эти строки и после запуска через 20 минут (1200 секунд) компьютер перейдет в спящий режим. Итого программа заняла 73 байт:
Но если Вам нужно именно выключить, то всё будет еще короче, а именно 47 байт. Просто вторая строка будет выглядеть:
Использую это перед сном, включая свое любимое онлайн радио «на сон грядущий» так же из командной строки, о чём будет рассказано под катом.
Кому все таки стало любопытно, прошу под кат. Ссылки на готовые скрипты в конце статьи.В большинстве своем всё новое это хорошо забытое старое.
Сначала рассмотрим что делают эти строки:
Пингуем IP адрес который всегда доступен (разве что Ваш firewall настроен «с выдумкой»). Интервал по умолчанию 1000 мс = 1 секунда. Ключ -n задает количество повторений 20 минут х 60 секунд = 1200 + 1 (т.к. первый пинг возвращается менее чем через 1 мс). А конструкция > nul говорит интерпретатору что стандартный вывод будет направляться в nul дабы избавиться от ненужного вывода на экран.
Происходит вызов программы rundll32.exe, которая позволяет выполнить подпрограмму из динамической библиотеки. В данном случае SetSuspendState с нужными нам параметрами. Подробное описание в MSDN.
Следует заметить, что если у вас включен гибридный режим сна (Hibernate), то войдет он именно в этот режим. Отключить его можно запустив от имени администратора следующее:
Запуск моего любимого интернет радио через Winamp в отдельном потоке.
Заблокировать рабочую станцию (WIN + L).
Гибридный режим сна (Hibernate).
Старая шутка с включением режима мыши для левши (меняются левая и правая кнопка мыши).
Отменить шутку с мышкой можно вызвав диалог настройки мыши и отключив эту функцию.
Переместить курсор в левый верхний угол.
Расположить все не свернутые окна каскадом.
Расположить все не свернутые окна по вертикали.
Еще много интересного можно найти на просторах интернета и придумать, вспоминая документацию по WinAPI функциям.
Есть всем известное выражение которое многим нравится:
Немного истории:
Еще в далёком 2003 году для выключения ПК по таймеру на скорую руку писалась простенькая программка. Писал сам, ибо знакомых программистов и доступа к интернету в то время у меня не было. Уверен, что много таких же «домашних программистов», которые купив или нарезав на болванки MSDN изучали программирование под Windows ночи напролёт. По случаю написания статьи отрыл ее в старом архиве на родительском ПК. Выглядела она незатейливо, но задачу свою выполняла. Как оказалось, даже сейчас ей пользуются несколько моих знакомых.
На чём она была написана уже и не помню (VC, VB, Delphi или Assembler). Размер ее был тоже не большим, но все же 16 166 против 47 байт не идут ни в какое сравнение.
И когда пару дней назад мне понадобился такой же функционал я полез искать похожий софт. Каково же было моё разочарование, когда я нашел кучу программ в среднем от 1,1 Мб до огромных монстров 15,2 Мб размером. Естественно совесть мне не позволила даже в песочнице запустить эту ересь. Понимая что мне нужна задержка выполнения в 20 минут и вызов одной лишь процедуры я вспомнил про rundll32.exe, полез в инет и не ошибся. В итоге решение было найдено за 1 минуту.Мораль:
Зачастую для решения простых задач нам не нужен сторонний софт. Достаточно просто зайти в поисковик и найти простое решение задачи, которое в 98,785% уже есть в свободном доступе. Конечно же нужно упомянуть и другой путь, для настоящих ИТ-шников, включить воображение, зайти в мануалы MSDN и воспользоваться готовым функционалом ОС. Согласитесь, приятно пользоваться простыми и элегантными решениями, но вдвойне приятнее когда до их решения ты дошел своим умом.