The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
С таймер ..., !*! redd, 16-Апр-18, 06:45  [смотреть все]
Нужен таймер, программный, чтобы допустим каждые 500 миллисекунд, основная программа прерывалась (как по прерыванию) исполнялся определенный код, и снова продолжалась основная программа ...

  • С таймер ..., !*! redd, 06:51 , 16-Апр-18 (1)
    Ну в общем, тики нужно сформировать, ...
  • С таймер ..., !*! Аноним, 06:58 , 16-Апр-18 (2) +1
    > Нужен таймер, программный, чтобы допустим каждые 500 миллисекунд, основная программа прерывалась
    > (как по прерыванию) исполнялся определенный код, и снова продолжалась основная программа
    > ...

    http://docs.libuv.org/en/v1.x/timer.html

    • С таймер ..., !*! Аноним, 08:49 , 16-Апр-18 (3) +1
      >> Нужен таймер, программный, чтобы допустим каждые 500 миллисекунд, основная программа прерывалась
      >> (как по прерыванию) исполнялся определенный код, и снова продолжалась основная программа
      >> ...
      > http://docs.libuv.org/en/v1.x/timer.html

      Ну или еще вот так: man setitimer

      #include <signal.h>                                                                                                                                                                                                                
      #include <stdio.h>                                                                
      #include <string.h>                                                                
      #include <sys/time.h>                                                              
                                                                                        
      void timer_handler (int signum)                                                    
      {                                                                                  
          static int count = 0;                                                          
          printf ("timer expired %d times\n", ++count);                                  
      }                                                                                  
                                                                                        
      int main ()                                                                        
      {                                                                                  
          struct sigaction sa;                                                          
          struct itimerval timer;                                                        
                                                                                        
          /* Install timer_handler as the signal handler for SIGVTALRM. */              
          memset (&sa, 0, sizeof (sa));                                                  
          sa.sa_handler = &timer_handler;                                                
          sigaction (SIGVTALRM, &sa, NULL);                                              
                                                                                        
          /* Configure the timer to expire after 250 msec... */                          
          timer.it_value.tv_sec = 0;                                                    
          timer.it_value.tv_usec = 250000;                                              
          /* ... and every 250 msec after that. */                                      
          timer.it_interval.tv_sec = 0;                                                  
          timer.it_interval.tv_usec = 250000;                                            
          /* Start a virtual timer. It counts down whenever this process is              
             executing. */                                                              
          setitimer (ITIMER_VIRTUAL, &timer, NULL);                                      
                                                                                        
          /* Do busy work. */                                                            
          while (1);                                                                    
      }

      • С таймер ..., !*! redd, 15:49 , 16-Апр-18 (4)
        Вот вот это лучше, поразбираться только нужно, senK
      • С таймер ..., !*! redd, 15:53 , 16-Апр-18 (5)
        Вот это Вот очень не плохо, это то что нужно, правда еще проверит нужно может не работает ?
        Вечером сейчас некогда ....
      • С таймер ..., !*! redd, 15:56 , 16-Апр-18 (6)
        Если заработает, то ВЕщЬ !
      • С таймер ..., !*! redd, 18:37 , 16-Апр-18 (7)
        Не запускается под MinGW вот ошибки компилятора ....

        ||=== Build: Debug in Timer250 (compiler: GNU GCC Compiler) ===|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c||In function 'main':|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c|14|error: storage size of 'sa' isn't known|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c|15|error: storage size of 'timer' isn't known|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c|20|warning: implicit declaration of function 'sigaction' [-Wimplicit-function-declaration]|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c|20|error: 'SIGVTALRM' undeclared (first use in this function)|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c|20|note: each undeclared identifier is reported only once for each function it appears in|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c|30|warning: implicit declaration of function 'setitimer' [-Wimplicit-function-declaration]|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c|30|error: 'ITIMER_VIRTUAL' undeclared (first use in this function)|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c|15|warning: unused variable 'timer' [-Wunused-variable]|
        C:\Users\redd\Desktop\CURSES\Timer250\main.c|14|warning: unused variable 'sa' [-Wunused-variable]|
        ||=== Build failed: 4 error(s), 4 warning(s) (0 minute(s), 3 second(s)) ===|

      • С таймер ..., !*! redd, 18:53 , 16-Апр-18 (8)
        Я правильно понял что этот блок выполняется про отработке таймера ????

        void timer_handler (int signum)                                                    
        {                                                                                  
            static int count = 0;                                                          
            printf ("timer expired %d times\n", ++count);                                  
        }      




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру