Timer esecuzione ciclo [linguaggio C]

Pubblicità

il_Matteo

Utente Attivo
Messaggi
4
Reazioni
0
Punteggio
24
Salve a tutti,
avrei bisogno di una mano nella progettazione di un programma in linguaggio C.
In particolare mi servirebbe un modo per poter ciclare un insieme di istruzioni per un periodo di tempo predeterminato,
possibilmente utilizzando la libreria time.h .
L'idea sarebbe quella di leggere l'ora del sistema e terminare il ciclo quando si arriva all'ora di sistema + n secondi, purtroppo non riesco a tradurre il tutto in codice.
Avete qualche suggerimento?
Grazie in anticipo.
 
Ciao,
In particolare mi servirebbe un modo per poter ciclare un insieme di istruzioni per un periodo di tempo predeterminato,
sii più chiaro, in che contesto devi utilizzare questa operazione?
E' un semplice esercizio con libreria time.h, o c'è altro...

Comunque sia, la tua richiesta può essere risolta con un (poco efficiente) ciclo, per altro devi dire cosa effettivamente stai creando, il "tempo" è una questione non di poco conto.
La condizione di uscita sarà l'uguaglianza tra l'ora di sistema e l'ora di inizio + il fattore che hai scelto. L'unica cosa da far attenzione è aggiungere i secondi al tipo time_t in modo corretto (se guardi nell'header vedrai che è un intero, basta che sommi alla base corretta).
 
Sto scrivendo un gioco a tempo, mi servirebbe interrompere il ciclo che invoca le funzioni che costituiscono la partita allo scadere di un tot di minuti o secondi dall'inizio della partita stessa.
Non so se così è più chiaro.
 
Sto scrivendo un gioco a tempo, mi servirebbe interrompere il ciclo che invoca le funzioni che costituiscono la partita allo scadere di un tot di minuti o secondi dall'inizio della partita stessa.
Non so se così è più chiaro.
mmm immagino sia un semplice programma single-task (cioè non utilizzi thread o fork).
Come detto "l'attesa" o il tempo è una questione spinosa, ma rendiamo il tutto semplice (a scanso dell'efficienza).

Per far ciò allora utilizza il sistema scritto sopra si chiama polling, cioè continua a controllare il timer finche non scatta l'ora che desideri.

per capirci:


Codice:
time_t start <- current_time()
time_t end <- start [+] n   //[+]: lascio te capire come "sommare" correttamente i due tipi

while(current_time()<=end){
....

}

Cose più raffinate sono possibili utilizzando argomenti più avanzati, dipende dallo scopo dell'esercizio.
 
Ho risolto utilizzando l'ora del sistema e CLOCK_PER_SEC, poco efficiente, poco elegante e non preciso.
Fortunatamente per ora non ho bisogno di queste caratteristiche.
Grazie per l'aiuto!
 
Pubblicità
Pubblicità
Indietro
Top