Timer esecuzione ciclo [linguaggio C]

il_Matteo

Utente Attivo
4
0
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.
 
D

deleted_98961

Ospite
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).
 

il_Matteo

Utente Attivo
4
0
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.
 
D

deleted_98961

Ospite
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.
 

il_Matteo

Utente Attivo
4
0
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!
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!