Russian Qt Forum
Ноябрь 26, 2024, 01:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как сделать задержку в проге  (Прочитано 10652 раз)
Anonymous
Гость
« : Март 27, 2004, 19:09 »

Пишу прогу на gсс & ncurses. Надо чтоб после выплнения определенных ф-ций программа оставливалась на определенное время, а потом возобнавляла работу. Есть в gcc такая ф-ция?
Записан
ods
Гость
« Ответ #1 : Март 29, 2004, 13:49 »

Цитата: "Anonymous"
Пишу прогу на gсс & ncurses. Надо чтоб после выплнения определенных ф-ций программа оставливалась на определенное время, а потом возобнавляла работу. Есть в gcc такая ф-ция?

man 3 sleep
Записан
EugeneVC
Гость
« Ответ #2 : Март 29, 2004, 13:54 »

или unsleep
Записан
npak
Гость
« Ответ #3 : Март 29, 2004, 14:03 »

В gcc такой функции нет.  Функции реализуются в библиотеках.  Раз ты пользуешься ncurses, то ось, я полагаю, Unix/Linux, соответственно искать надо в библиотеках, которые идут с твоей системой.  На линуксе, как правило, ставится библиотека glibc.

В библиотеке glibc есть несколько функций для приостановки исполнения

sleep(3) -- останов на целое число секунд, POSIX.1
usleep(3) -- останов задаётся с точностью до микросекунд, нестандартная фича из  BSD и Single Unix Spec.
nanosleep(2) -- останов задаётся с точностью до наносекунд, POSIX.1b

Первый вариант самый простой, но есть заморочки при обработке сигналов и использовании pthreads

Я предпочитаю пользоваться nanosleep.
Записан
ods
Гость
« Ответ #4 : Март 29, 2004, 14:11 »

Цитата: "EugeneVC"
или unsleep

Если точность нужна в миллисекундах, то usleep, но этой функции нет в POSIX и она не везде доступна. Для кросплатформной эмуляции usleep обычно используют select, хотя вариантов куча.
Записан
Rainbow
Гость
« Ответ #5 : Март 29, 2004, 23:11 »

Если на то пошло то не RTOS системах об nanosleep можеш забь?ть.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.139 секунд. Запросов: 21.