|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2007
Città: Fornovo (PR)
Messaggi: 13
|
Linux e C - Aiuto!
Salve a tutti gli user del forum, sono ndakota91, e sono nuovo qui. Avrei bisogno di aiuto, sto cercando di programmare in C un programmino sotto Mandriva, e mi serve aiuto con il header "time.h". In pratica uso la seguente funzione per leggere un file:
#include <stdio.h> #include <time.h> #include <string.h> ... while(fgets(buffer, 256, stream) != NULL) { sleep(1); printf("%s", buffer); } ... return 0; In pratica legge una stringa da uno stream, la mette nel buffer, attende un secondo e poi la "printa". Per il mio scopo l'attesa di 1 secondo e' troppo, come faccio a fare "dormire" il PC meno di un secondo? P.S.:Spero di essere stato chiaro.... Grazie mille a chi mi aiuta |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: May 2007
Città: Fornovo (PR)
Messaggi: 13
|
Grazie... pero come si usa?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Innanzitutto includi <unistd.h>, poi il parametro è unsigned long usec, sono cioè microsecondi.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#6 | ||
|
Senior Member
Iscritto dal: Sep 2004
Città: puɐlɹǝpuoʍ
Messaggi: 1710
|
Quote:
Codice:
#include <unistd.h>
#include <stdio.h>
#include <time.h>
void timestamp( char *str ) {
time_t t;
time( &t );
printf( "%s the time is %s\n", str, ctime(&t) );
}
int main( int argc, char *argv[] ) {
int result = 0;
timestamp( "before usleep()" );
result = usleep( 999999 );
timestamp( "after usleep()" );
printf( "usleep() returned %d\n", result );
return( result );
}
![]() Quote:
Ultima modifica di k4ez4r : 29-05-2007 alle 16:56. |
||
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Sì certo, usleep è presente su tutti gli unix, ma su linux non è implementata con i segnali (ma con la nanosleep), funziona anche per sleep superiori a 1000000us e non mi risulta affatto che sia deprecata.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Sep 2004
Città: puɐlɹǝpuoʍ
Messaggi: 1710
|
Quote:
Alla fine non ho capito se usare la usleep() sia bene o male edit: volevi dire che su linux è meglio usare nanosleep()? |
|
|
|
|
|
|
#9 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
http://www.linuxmanpages.com/man3/usleep.3.php edit - ... la quale però sostiene autorevolmente che usleep è obsoleta e che è meglio usare nanosleep o setitimer, cosa di cui non mi ero accorto perciò la risposta è: usare usleep è male
Ultima modifica di 71104 : 29-05-2007 alle 17:13. |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Sep 2004
Città: puɐlɹǝpuoʍ
Messaggi: 1710
|
Quote:
|
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: May 2006
Città: Nettuno
Messaggi: 94
|
la più agevole era la delay (millsecondi) con la quale creavo le pause x i suoni
__________________
Pentium III 733 SuperSchifo DeLuxe 320 mb di ram meccanica a tamburo, raffreddamento naturale ed ecologico a case aperto. R'N'R! |
|
|
|
|
|
#12 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
per i millisecondi c'è la semplice sleep: quella non è deprecata, anzi è standard POSIX.
|
|
|
|
|
|
#13 |
|
Junior Member
Iscritto dal: May 2007
Città: Fornovo (PR)
Messaggi: 13
|
71104: Scusa ma con sleep() il sistema attende un certo numero di secondi(almeno a me, forse saro' l'unico al mondo con PC cosi...
Cioe' se uso sleep(1); [che e' il minimo] il sistema attende un secondo. La mia intenzione era quello di printare un array una lettera alla volta con qualche millisecondo di pausa e far sembrare questa operazione come una "battitura di e-mail" per esempio. Comunque ho provato con usleep(), funziona, qual'e' il problema di questa istruzione? |
|
|
|
|
|
#14 | ||
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
shame on me* ![]() *trad.: scemo so' io ![]() Quote:
|
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:43.






















