Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: DragoRosso - Marzo 13, 2024, 10:24:53 pm

Titolo: Unix time
Inserito da: DragoRosso - Marzo 13, 2024, 10:24:53 pm
Ciao a tutti.

In un post recente avevo accennato ad un possibile problema con il "tempo" rappresentato da Unix (storicamente una struttura time_t signed 32 bit).

In effetti mi ero già trovato su questo argomento nel recente passato a causa di un valore in un database sballato, ma non essendo di mia gestione l'avevo segnalato e dimenticato.

Ora, dopo ciò che ho visto, effettivamente il 2038 è l'anno limite per lo storico dato che può contenere 2^31 secondi dal 1970 e che 2038 andrà in overflow ...

Da quello che ho visto vengono già usate le definizioni con time_t a 64 bit, superando così il problema del 2038 e Lazarus se non sbaglio usa già questa definizione.

Ma come si fà a sapere se il dato in un qualsiasi contenitore (database o altro) è in formato 32 o 64 bit ?

In lettura non ci sono problemi ovviamente, ma in scrittura, a meno di non andare a testare il campo relativo, come si fà ad essere sicuri che il dato verrà preso correttamente e non convertito da 64 bit a 32 bit perdendo così la definizione ?

Tutto il mondo è già stato adattato o ci sono residui di cui preoccuparsi a voi noti ?
Titolo: Re:Unix time
Inserito da: xinyiman - Marzo 14, 2024, 08:08:34 am
Bhe sai, diciamo che il 2038 ancora è lontano. Tendenzialmente i costruttori di db si stanno già muovendo per rappresentare il dato in modo da superare l'ostacolo.
Ci si aspetta che per allora non ci siano più in giro macchine con versioni di db così vecchie.
Titolo: Re:Unix time
Inserito da: nomorelogic - Marzo 14, 2024, 08:54:48 am
per i nuovi programmi e quelli mantenuti penso che non ci siano problemi
si tratta di cambiare il tipo da 32 a 64 bit, sono sicuro che tutti i linguaggi di programmazione si adegueranno (se non l'hanno già fatto)
i database penso che si adegueranno allo stesso modo
i file system si risolveranno con l'adeguamento dei linguaggi di programmazione

penso alle centraline a 32 bit già installate in auto, aerei, ecc...
forse la maggior parte di queste centraline verranno sistemate con un richiamo in casa per un aggiornamento software

non sarebbe male se i reparti militari dei governi bellicosi ignorassero la cosa e tutti gli armamenti semplicemente smettessero di di fare il boot e di accendersi dopo il 2038...
wow  :)
Titolo: Re:Unix time
Inserito da: xinyiman - Marzo 14, 2024, 09:03:21 am
non sarebbe male se i reparti militari dei governi bellicosi ignorassero la cosa e tutti gli armamenti semplicemente smettessero di di fare il boot e di accendersi dopo il 2038...
wow  :)
Un inguaribile sognatore  ;)
Titolo: Re:Unix time
Inserito da: nomorelogic - Marzo 14, 2024, 09:14:11 am
forse è il caso di fondare l'anonima sviluppatori....
 ;D
Titolo: Re:Unix time
Inserito da: DragoRosso - Marzo 14, 2024, 11:39:45 am
Bhe sai, diciamo che il 2038 ancora è lontano.

La linea temporale è lontana, non l'uso dei dati. Ho clienti che stanno usando quelle date. Per adesso non mi sono stati segnalati problemi, però ...
Titolo: Re:Unix time
Inserito da: xinyiman - Marzo 14, 2024, 03:22:41 pm
Bhe sai, diciamo che il 2038 ancora è lontano.

La linea temporale è lontana, non l'uso dei dati. Ho clienti che stanno usando quelle date. Per adesso non mi sono stati segnalati problemi, però ...

A bhe si è vero.