[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 » |