Condividi tramite


_strtime_s, _wstrtime_s

Copiare il tempo corrente di un buffer.queste sono versioni di _strtime, _wstrtime con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.

errno_t _strtime_s(
   char *buffer,
   size_t numberOfElements
);
errno_t _wstrtime_s(
   wchar_t *buffer,
   size_t numberOfElements
);
template <size_t size>
errno_t _strtime_s(
   char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrtime_s(
   wchar_t (&buffer)[size]
); // C++ only

Parametri

  • [out] buffer
    Un buffer, almeno 10 byte di lunghezza, dove il tempo viene scritto.

  • [in] numberOfElements
    Dimensione del buffer.

Valore restituito

Zero se ha esito positivo.

Se una condizione di errore caso, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Il valore restituito è un codice di errore se c " è un errore.I codici di errore definiti in ERRNO.H; vedere la seguente tabella degli errori esatti generati dalla funzione.Per ulteriori informazioni sui codici di errore, vedere costanti di errno.

condizioni di errore

buffer

numberOfElements

Return

Contenuto di buffer

NULL

(nessuno)

EINVAL

non modificato

non NULL (punta al buffer valido)

0

EINVAL

non modificato

non NULL (punta al buffer valido)

0 Dimensioni < 9 di <

EINVAL

Stringa vuota.

non NULL (punta al buffer valido)

dimensione > 9

0

L'ora corrente formattato come specificato nei commenti

problemi di sicurezza

Passando un valore non Null non valido per il buffer comporterà una violazione di accesso se numberOfElements il parametro è maggiore di 9.

passare un valore per numberOfElements ciò è maggiore dell'effettiva dimensione del buffer comporterà il sovraccarico del buffer.

Note

Queste funzioni forniscono versioni sicure di _strtime e _wstrtime._strtime_s la funzione copia l'ora locale corrente nel buffer puntato in near timestr*.* Il tempo viene formattato come hh:mm:ss dove hh sono due cifre che rappresentano l'ora in notazione di 24 ore, mm sono due cifre che rappresentano i minuti dopo l'ora e ss sono due cifre che rappresentano i secondi.Ad esempio, la stringa 18:23:44 rappresenta 23 minuti e 44 secondi dopo le 6 del pomeriggioil buffer deve essere almeno di 9 byte di lunghezza; l'effettiva dimensione è specificata dal secondo parametro.

_wstrtime è una versione a caratteri estesi di _strtime; l'argomento e il valore restituito di _wstrtime sono le stringhe di caratteri estesi.Queste funzioni si comportano in modo identico in caso contrario.

In C++, utilizzando queste funzioni è semplificato dagli overload del modello; gli overload possono dedurre la lunghezza del buffer automaticamente (che elimina la necessità di specificare un argomento di dimensione) e possono sostituire automaticamente le funzioni precedenti e non sicure con le più recenti, controparti sicure.Per ulteriori informazioni, vedere Assicurarsi che gli overload del modello.

Mapping di routine a testo generico:

routine di TCHAR.H

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tstrtime_s

_strtime_s

_strtime_s

_wstrtime_s

Requisiti

routine

Intestazione di associazione

_strtime_s

<time.h>

_wstrtime_s

<time.h> o <wchar.h>

per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.

Esempio

// strtime_s.c

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

int main()
{
    char tmpbuf[9];
    errno_t err;

    // Set time zone from TZ environment variable. If TZ is not set,
    // the operating system is queried to obtain the default value 
    // for the variable. 
    //
    _tzset();

    // Display operating system-style date and time. 
    err = _strtime_s( tmpbuf, 9 );
    if (err)
    {
       printf("_strdate_s failed due to an invalid argument.");
      exit(1);
    }
    printf( "OS time:\t\t\t\t%s\n", tmpbuf );
    err = _strdate_s( tmpbuf, 9 );
    if (err)
    {
       printf("_strdate_s failed due to an invalid argument.");
       exit(1);
    }
    printf( "OS date:\t\t\t\t%s\n", tmpbuf );

}
  

Equivalente .NET Framework

Vedere anche

Riferimenti

Gestione di tempo

asctime_s, _wasctime_s

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

mktime, _mktime32, _mktime64

time, _time32, _time64

_tzset