Newsgroup: it.comp.lang.c
Titolo: timer

salve, avrei bisogno (in C)
di un "modo" per ottenere delle
temporizzazioni precise almeno al
uS (microsecondo, 0.000001 secondi).
esiste una qlc istruzioni che faccia ciň?
grazie
--
Denis
WebMaster di 
http://www.casafiorita.it
Fai i tuoi regali in modo unico ed originale!

 ha scritto nel messaggio
news:aheig7$sci4l$1...@ID-106390.news.dfncis.de...


 topic "Clock()"
no, hai perfettamente ragione...
ho sbagliato io a non cercare prima informazioni
a riguardo.


 Ciao
Oltre che a clock() (che fa riferimento ai cicli di clock effettuati dal
processore come unità di misura del tempo) ti consiglio, per una misura
temporale "effettiva" e precisa, la funzione gettimeofday(struct timeval,
NULL) che ti restituire l'ora precisa (ai microsecondi) del momento in cui
viene invocata.
Ciao!

 viene invocata.
esempio please?
al max riesco ad ottenere la data odierna
al secondo...
come faccio per avere i microsecondi?


 grazie
struct timeval t;
gettimeofday(t, NULL);
printf("Secondi: %d Microsecondi: %d", t.tv_sec, t.tv_usec);
Non l'ho compilato ma dovrebbe funzionare.
Cmq puoi sempre ricorrere al man gettimeofday per ulteriori delucidazioni.
Ciao!

> struct timeval t;
sicuo che questa dich. sia giusta?
il compilatore mi dà:
prova.c: In function `main':
prova.c:10: `t' has an incomplete type
prova.c:11: invalid use of undefined type `struct timeval'
prova.c:11: invalid use of undefined type `struct timeval'
prova.c: At top level:
prova.c:6: storage size of `t' isn't known
se la metto nelle intestazioni.
se invece la metto dentro main:
prova.c:9: storage size of `t' isn't known
bah!!!
(il man gettimeofday neanche a dirlo, non
l'ho installato ;-))
e per di più nell'msdn non dicono niente...


 sicuo che questa dich. sia giusta?
la struct timeval l'ho usata diverse volte; hai considerato l'
#include <time.h>
?
Che compilatore usi?
Ti so dire per certo che con gcc 3.0.1 (ma anche per versioni precedenti)
funziona benissimo. La precisione è davvero notevole.
Fammi sapere.
Ciao!

 Fammi sapere.
gcc
riprovo...


ecco l'errore:
prova.c:7: storage size of `t' isn't known
mah!!!!



L'ultima cosa che mi viene in mente di dirti č:
#include <sys/time.h>
oltre all' #include<time.h>
Se ancora non va, aggiorna il gcc.
Fammi sapere
Ciao!

 #include <sys/time.h>
cazzo....
sono sfigato...
adesso con la sola dichiarazione compila,
aggiungendo il gettimeofday no!!!
prova.c:7: incompatible type for argument 1 of `gettimeofday'


 
cos'e` il primo argomento che passi a gettimeofday() ?
Nota che dev'essere un *puntatore* ad una *struct timeval* , e dev'essere vuota
(o comunque allocata e sacrificabile), perche' gettimeofday() va a
sovrascriverla.
Dall'errore sembra quasi che gli passi l'intera struttura, al posto del
puntatore.
Adieu,
-- 
Lestat de Lioncourt                               |          Ciro Mattia Gonano
  JabberID: 
les...@jabber.students.cs.unibo.it
    |    Undergraduate Student in
  ICQ#: 52631406                                  |         Computer Science at
  URL: 
http://www.CS.UniBO.It/~gonano
             |       University of Bologna
            <powered by Linux Slackware 8.1 on Kernel 2.4.18-xfs>

caspiterina....
sul gettimeofday
t
va chiamato con &
davanti.....
grazie


 --
Ho letto le altre mail ma dubito che risolverai qualcosa
col gettimeofday se il tuo obiettivo č avere un timer che
scatta ogni x us.
Ti consiglio invece di usare la select(2). Poichč non ti
interessa testare la readability,writability o "exceptability"
di alcun descrittore metti quei 3 puntatori a NULL.
Cosě ottieni quello che ti serve col minimo sforzo. 
Un consiglio : man 2 select prima di codare! 
Bye, buffer.

 grazie
Vedi setitimer() e alarm() (man 2 alarm, man 2 setitimer, man 2 signal,
man 7 signal), non sono nello standard C.
-- 
                    |   .-.
Gianluca Di Corato  |  : | :  I N  P E A C E  W E  T R U S T
   (aka sgrung)     |  '/|\'

 esiste una qlc istruzioni che faccia ciò?
Implementig software timers di Don Libes, potrebbe interessarti:
http://www.kohala.com/start/libes.timers.txt
