[Pluto-help] Ricavare l'ra in formato stringa
Marco Cova
giardini a libero.it
Ven 6 Lug 2001 19:50:55 CEST
"Lossani Simone Pietro, IT" wrote:
>
> Ciao,
> sto tentando di ricavare l'ra e data di sistema in formato stringa.
>
> Ho usato la funz. gmtime(tempo1) e poi ctime(tempo1), ma stampando la
> stringa risultante fprintf(stdout, ctime(tempo1)) non riesco a visualizzare
> nulla.
> Qualcuno sa perchè? C'è un modo migliore per ottenere la data e l'ora?
>
> Grazie e buon week end!!
> simone.
Dall'ottimo librone di Stevens Advanced Programming in Unix Environment,
mi sembra di capire questo:
time_t time(time_t *t); il cui prototipo è in <time.h>
prende dal kernel il numero di secondi trascorsi da Epoch (1 Gennaio
1970 00:00:00 UTC). Questo è il "calendar time".
Se hai il calendar time puoi usare una delle seguenti funzioni per avere
un brokend-down time (una struct tm):
struct tm *gmtime(const time_t *t);
struct tm *localtime(const time_t *t); il broken-down time è espresso in
UTC
time_t mktime(struct tm *tmptr);
ti permette di fare il giro inverso: da broken-down time a calendar
time.
char *asctime(const struct tm *tmptr);
char *ctime(const time_t *t);
danno la stringa che si ottiene da date(1) senza opzioni aggiuntive (più
o meno)
Infine,
size_t strftime(char *buf, size_t maxsize, const char *format, const
struct tm *tmptr);
funziona come la printf. Per i format utilizzabili, vedi la man page.
Dovrebbe tenere conto del locale, ma mi sembra in realtà non lo faccia).
In allegato un mini-esempio,
Marco.
-------------- parte successiva --------------
#include <stdio.h>
#include <time.h>
#define MAXSIZE 81
int main(void)
{
time_t caltime;
struct tm *bdtime;
char string[MAXSIZE];
time(&caltime);
printf("Usando ctime: %s", ctime(&caltime));
bdtime = gmtime(&caltime);
printf("Usando gmtime e asctime: %s", asctime(bdtime));
bdtime = localtime(&caltime);
printf("Usando localtime e asctime: %s", asctime(bdtime));
strftime(string, MAXSIZE, "%A %B %G", bdtime);
puts(string);
exit(0);
}
More information about the pluto-help
mailing list