mwgamera has no life


usleep

Wpis na 0. poziomie, wysłany 2005-08-31 23:49:24

Czy istnieje przenośny odpowiednik usleep?... Wydaje mi się, że nie za bardzo. Z resztą 'man usleep' pisze:
This function is obsolete. Use nanosleep(2) or setitimer(2) instead.
No to zrobiłem:
int msleep(unsigned long usec) {
#if defined(__POSIX__)
   struct timespec time;
   time.tv_sec = 0; time.tv_nsec = usec * 1000;
   nanosleep(&time, NULL);
#elif /* miejsce na inne kombinacje dla innych systemów ... */
#else
# error Zdefiniuj se 'msleep'.
#endif
/* ... */
}

A ono mi na to "wała", nie ma __POSIX__. To wywaliłem te warunki niech się chociaż dla mojego systemu skompiluje a potem pomyśle. Dalej źle, to wywaliłem -ansi. Poszło, skompilowało się bez problemu, tylko nich mi ktoś powie czemu niezależnie z jakim argumentem wywołam to zatrzymuje mi program na ~0.5 sekundy?...
A ja chciałem zrobić na poczatku tak, żeby za pomocą instrukcji preprocesora zrobić kod kompilowalny również pod DOSa wzgl. win32... ale chyba to nie jest możliwe...


Komentarze do notki usleep

Dodaj komentarz:

Komentarze można formatować przy użyciu Markdown.