[so] Sleep milisecunde

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sun Apr 12 21:32:52 EEST 2009


On Sun, 2009-04-12 at 21:19 +0300, Sergiu Iordache wrote:
> On Sun, Apr 12, 2009 at 9:10 PM, Bogdan Sass <bogdan.sass at catc.ro> wrote:
> >   Cum as putea genera un delay de X milisecunde in C (conform cu comanda "s
> > MMM" din enuntul temei)? Eventual si intr-un mod portabil si/sau standard :)
> >
> >   Intreb pentru ca am gasit o formulare... interesanta [1]:
> >
> > There is no way to do so in standard C, the topic of this newsgroup. The
> > function sleep() is also not part of standard C. The clue is the fact that
> > the operating system is relevant.
> >
> > [1] http://bytes.com/groups/c/215640-millisecond-delay-c-linux
> >
> >   In contextul temei, usleep() ar fi o solutie acceptata?

Da, C standard nu ofera suport pentru granularitate de milisecunde.
Trebuie folosita o interfata proprie sistemului de operare.

> Din câte știu eu atât usleep()[1] cât și nanosleep()[2] ar trebui să
> funcționeze ok.
> 
> Eu deocamdată am folosit usleep[1] dar am înțeles că e mai bună
> nanosleep[2] și probabil o să o schimb în asta.

Da, se prefera nanosleep.

OpenGroup[0x01] spune "Applications are recommended to use setitimer(),
timer_create(), timer_delete(), timer_getoverrun(), timer_gettime() or
timer_settime() instead of this interface."

Pagina de manual Linux[0x02] spune "4.3BSD, POSIX.1-2001.  POSIX.1-2001
declares this function obsolete; use nanosleep(2) instead.  POSIX.1-2008
removes the specification of usleep()."

Razvan

[0x01] http://opengroup.org/onlinepubs/007908799/xsh/usleep.html
[0x02] http://www.kernel.org/doc/man-pages/online/pages/man3/usleep.3.html



More information about the so mailing list