AIUTO: stampare data e orario

di il
9 risposte

AIUTO: stampare data e orario

Salve a tutti, ho un problema con un programmino che in pratica mi legge l'inode di un file o directory e mi stampa la timeline del file, il tempo di ultimo accesso ed ultima modifica, solamente che mi stampa i secondi trascorsi a partire dal 1/1/1970, una cosa del genere "1299404188". Come posso fare per farmi stampare invece il tempo di accesso o di ultima modifica in formato gg/mm/aaaa hh:mm:ss?
vi posto il codice:

#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>

int main(int narg, char **argv){
struct stat filestat;

if(lstat(argv[1], &filestat) ==-1)
{
perror("Errore");
return 2;
}

printf("I-node: %d\n", (int) filestat.st_ino);
printf("tempo ultimo accesso: %d\n", (int) filestat.st_atime);
printf("tempo ultima modifica: %d\n", (int) filestat.st_mtime);
printf("tempo ultimo cambio: %d\n", (int) filestat.st_ctime);

return 0;

}

Grazie in anticipo

9 Risposte

  • Re: AIUTO: stampare data e orario

    
    struct tm  *ts;
    char           buf[100];
    
    ts = localtime(&stat_base.st_mtime);
    
    strftime(buf, sizeof(buf), "%a %Y-%m-%d %H:%M:%S %Z", ts);
    printf("%s\n", buf);
    
    verifica se questo codice ti da il tempo corretto.
  • Re: AIUTO: stampare data e orario

    skynet ha scritto:


    
    struct tm  *ts;
    char           buf[100];
    
    ts = localtime(&stat_base.st_mtime);
    
    strftime(buf, sizeof(buf), "%a %Y-%m-%d %H:%M:%S %Z", ts);
    printf("%s\n", buf);
    
    verifica se questo codice ti da il tempo corretto.

    lo devo aggiungere al mio codice??
  • Re: AIUTO: stampare data e orario

    Si, quello è un esempio sull'ultima modifica. Lo devi aggiungere anche per ricavare gli altri membri che servono a te.
  • Re: AIUTO: stampare data e orario

    skynet ha scritto:


    Si, quello è un esempio sull'ultima modifica. Lo devi aggiungere anche per ricavare gli altri membri che servono a te.
    #include <stdio.h>
    #include <sys/stat.h>
    #include <unistd.h>

    int main(int narg, char **argv){
    struct stat filestat;

    if(lstat(argv[1], &filestat) ==-1)
    {
    perror("Errore");
    return 2;
    }

    printf("I-node: %d\n", (int) filestat.st_ino);
    printf("tempo ultimo accesso: %d\n", (int) filestat.st_atime);
    printf("tempo ultima modifica: %d\n", (int) filestat.st_mtime);
    printf("tempo ultimo cambio: %d\n", (int) filestat.st_ctime);

    struct tm *ts;
    char buf[100];

    ts = localtime(&stat_base.st_mtime);

    strftime(buf, sizeof(buf), "%a %Y-%m-%d %H:%M:%S %Z", ts);
    printf("%s\n", buf);

    return 0;

    }

    lo aggiunto così al mio progetto e gli errori che mi da sono :
    ripristino.c: In function ‘main’:
    ripristino.c:22: error: ‘stat_base’ undeclared (first use in this function)
    ripristino.c:22: error: (Each undeclared identifier is reported only once
    ripristino.c:22: error: for each function it appears in.)
    ripristino.c:24: warning: incompatible implicit declaration of built-in function ‘strftime’
  • Re: AIUTO: stampare data e orario

    Ma ci sei o ci fai? non sei capace a fare una modifica se qualcuno di posta un pezzo di codice?
    
    #include <stdio.h>
    #include <sys/stat.h>
    #include <unistd.h>
    
    int main(int narg, char **argv){
    struct stat filestat;
    
    if(lstat(argv[1], &filestat) ==-1)
    {
    perror("Errore");
    return 2;
    }
    
    printf("I-node: %d\n", (int) filestat.st_ino);
    printf("tempo ultimo accesso: %d\n", (int) filestat.st_atime);
    
    struct tm *ts;
    char buf[100];
    
    ts = localtime(&filestat.st_mtime);
    
    strftime(buf, sizeof(buf), "%a %Y-%m-%d %H:%M:%S %Z", ts);
    printf("tempo ultima modifica: %s\n", buf);
    
    printf("tempo ultimo cambio: %d\n", (int) filestat.st_ctime);
    return 0;
    
    }
    
  • Re: AIUTO: stampare data e orario

    Beh guarda mi da sempre questi due errori :

    In function ‘main’:
    20: warning: assignment makes pointer from integer without a cast
    22: warning: incompatible implicit declaration of built-in function ‘strftime’
  • Re: AIUTO: stampare data e orario

    Aggiungi anche <time.h> nella lista dei header. E poi non sono errori ma warning (avvertenze) il programma dovrebbe funzionare lo stesso.
  • Re: AIUTO: stampare data e orario

    Ok grazie funziona, ma adesso io per ogni printf del tempo che ho gli devo fare quella struttura?
  • Re: AIUTO: stampare data e orario

    In sostanza si.
Devi accedere o registrarti per scrivere nel forum
9 risposte