Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C] ottenere la data

    codice:
    	
    char temp[3000];
    	
    time_t t;
    struct tm *now;
    	
    time(&t);
    	
    printf("time_t t:%d\n", &t);
    now = localtime(&t);	
    sprintf (temp, "'%04d-%02d-%02d %02d:%02d:%02d',", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec);
    now = localtime(&t) mi da segmentation fault, cosa non va?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [C] ottenere la data

    Originariamente inviato da bonzox
    now = localtime(&t) mi da segmentation fault, cosa non va?
    Così a occhio mi sembra corretto, a parte il fatto che la printf stampa l'indirizzo di t (ti serve?).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Controlla che il valore restituito da "time" sia diverso da "(time_t) -1".
    Quando stampi l'indirizzo di "t", non usare "%d", ma "%p":

    Codice PHP:
    /*
    * Thu Nov 15 15:02:39 EET 2007
    * Compiled and tested with:
    * i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
    *
    * output:
    time_t t:0xbfffecc0
    '2007-11-15 15:03:27';
    */

    #include <time.h>
    #include <stdio.h>

    int main (void){
        
    char temp[3000];
            
        
    time_t t;
        
    struct tm *now;
            
        if ((
    time_t) -!= time(&t)){
            
            
    printf("time_t t:%p\n", &t);
            
    now localtime(&t);    
            
    sprintf (temp"'%04d-%02d-%02d %02d:%02d:%02d';\n"now->tm_year 1900now->tm_mon 1now->tm_mdaynow->tm_hournow->tm_minnow->tm_sec);
            
    printf (temp);
        }
        return 
    0;


  4. #4
    Ok, funziona.

    Però se la metto nel resto del programma mi da segmentation fault sempre l'istruzione

    now = localtime(&t);

    ?!??

  5. #5
    Originariamente inviato da bonzox
    Ok, funziona.

    Però se la metto nel resto del programma mi da segmentation fault sempre l'istruzione

    now = localtime(&t);

    ?!??
    Bisogna vedere il resto del programma. Magari nel punto in cui la utilizzi "now" e "t" si riferiscono ad entità differenti da quelle definite nell'esempio funzionante.

  6. #6
    Ci ho lavorato un po' e ora sembra funzionare, ma non ho chiarissimo quale fosse il problema.

    Comunque Grazie a tutti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.