|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: May 2007
Messaggi: 292
|
[C/C++] Posso assumere che l'Epoch sia hardware-independent?
Vorrei utilizzare la Epoch in un sistema ultra-semplicistico di licenza di un software (in pratica, rilasciare un software che dopo tot gg smette di funzionare).
Quanto può andare bene usare l'Epoch? Intendo, una cosa semplice tipo questa: Codice:
time_t rawtime; struct tm * timeinfo; time (&rawtime); timeinfo = localtime (&rawtime); strftime (buffer, 10, "%Y-%m-%d", timeinfo); Il pezzo di codice si fa dare il tempo passato dalla Epoch e lo converte in data. Non mi è chiaro però se quelle 5 righe di codice possano funzionare su qualsiasi computer, o se nelle funzioni di sopra è implicito una Epoch pari al 1 gennaio 1970... Intendo: è possibile che qualche pc abbia una Epoch diversa da 1970 e che il codice di sopra mi restituisca una data sbagliata? Diciamo pure che per i miei scopi è importante solo l'anno e il mese (giorni, ore, minuti ecc... posso anche trascurarli), e che il target sarebbero i normali computer da ufficio. Grazie mille :-) |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
La documentazione riporta che generalmente, la funzione time restituisce
il numero di secondi dalle ore 00:00 UTC del 1° gennario 1970. Il problema è che l'implementazione di questa funzione varia da sistema a sistema, però sarebbe diabolico implementarla in modo che abbia un comportamento diverso, quindi io mi fiderei. Il problema vero invece è che basta modificare l'orario del pc per fregare il sistema di licenza, ma questo è un altro discorso. PS. in ogni caso tra l'hardware e le librerie del c tipicamente c'è il sistema operativo che si occupa di "livellare" le differenze hardware. Ultima modifica di Daniels118 : 14-03-2014 alle 15:05. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: May 2007
Messaggi: 292
|
Ah, io credevo che i secondi dall'Epoch fossero in qualche modo qualcosa di immodificabile.
Immaginavo che la data fosse gestita dal sistema operativo e modificabile dall'utente, mentre il numero di secondi restituito dalle funzioni che avevo riportato fosse in qualche modo immutabile e non gestito dall'utente. Invece mi dici che sono collegate? Cioè se io cambio la data nel mio sistema operativo poi la funzione "time" mi restituisce un diverso numero di secondi? |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Sep 2013
Messaggi: 24
|
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Quote:
Sarebbe più sensato interrogare un web server per conoscere la data, in modo che l'utente medio non sia in grado di manometterla; dico "l'utente medio" perché con delle modeste conoscenze si potrebbe facilmente raggirare anche questo metodo. Oppure invece di prevedere una data di scadenza puoi immaginare un sistema "a consumo": utilizzando il programma viene incrementato un contatore salvato in un luogo nascosto, quando si raggiunge un valore predefinito il programma smette di funzionare. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:36.