[C++, unistd.h] usleep() - błąd linkera podczas próby wywołania
Ostatnio zmodyfikowano 2010-06-21 18:05
robaczek122 Temat założony przez niniejszego użytkownika  | 
[C++, unistd.h] usleep() - błąd linkera podczas próby wywołania » 2010-06-05 20:55:59 Przetestowałem funkcję Sleep() i _sleep() na jakimś timerze (zarówno online jak i innym offline), pomiar 1 sekundy pomiędzy dwoma spacjami idealny, natomiast pomiędzy dwoma kliknięciami myszki spory (+-0,02).  Wyczytałem, że istnieje funkcja usleep(), w bibliotece <unistd.h>, ale gdy chce jej użyć wyskakuje mi błąd, że funkcja usleep nie została wcześniej zdeklarowana.  I tutaj mam dwa pytania: Da się obniżyć jakoś ten błąd przy kliknięciach? Co może być nie tak z funkcją usleep?  | 
 | 
malan  | 
» 2010-06-06 10:25:57 Czy ta funkcja nie jest czasem dostępna tylko na Linuxie ?  | 
 | 
DejaVu  | 
» 2010-06-07 03:15:01 Pogooglaj na temat: high resolution timer.  | 
 | 
robaczek122 Temat założony przez niniejszego użytkownika  | 
» 2010-06-17 16:44:18 dzięki za odpowiedź Mam jednak mały problem z takim przypadkiem: #include<iostream> #include<conio.h> #include <windows.h> using namespace std;
  int main() {     LARGE_INTEGER czestotliwosc;     LARGE_INTEGER t1, t2;     double czas;                    QueryPerformanceFrequency( & czestotliwosc );     QueryPerformanceCounter( & t1 );           while(( t2.QuadPart - t1.QuadPart ) * 1000.0 / czestotliwosc.QuadPart <= 3000 )      {         QueryPerformanceCounter( & t2 );     }                    czas =( t2.QuadPart - t1.QuadPart ) * 1000.0 / czestotliwosc.QuadPart;     cout << czas << " ms";               getch();     return( 0 ); }
  a mianowicie kod działa dobrze (odlicza 3 sekundy), ale nie wiem dlaczego jeśli mam coś pomiędzy pętla a linijką czas =( t2.QuadPart - t1.QuadPart ) * 1000.0 / czestotliwosc.QuadPart;  to program nie odmierza czasu, tylko od razu przechodzi dalej.  | 
 | 
ison  | 
» 2010-06-17 17:01:04 nie łatwiej tak odmierzyć 3 sekundy? #include <cstdio> #include <windows.h>
  int main() {     printf( "Start\n" );     int timeA, timeB;     timeA = GetTickCount();     while( timeB - timeA < 3000 ) timeB = GetTickCount();          printf( "Stop\n" ); }
   | 
 | 
robaczek122 Temat założony przez niniejszego użytkownika  | 
» 2010-06-20 14:56:11 Działa, tylko, że nie tak dokładniej jak bym chciał.  Chciałbym mimo wszystko dokształcić się i dowiedzieć dlaczego jak dam tam tego "cout", to program nie odmierza czasu?
   | 
 | 
DejaVu  | 
» 2010-06-20 16:14:25 Oboje źle piszecie algorytm. Przykład: int i = 123; int k;  while( k - i < 3000 ) k = funkcja();
 
   | 
 | 
robaczek122 Temat założony przez niniejszego użytkownika  | 
» 2010-06-21 18:05:22 dzięki wszystkim! Już wiem czemu to nie grało.  Temat do zamknięcia.  | 
 | 
|  « 1 »  |