Compartilhar via


_strtime_s, _wstrtime_s

Copia a hora atual para um buffer. Essas funções são versões do , com aprimoramentos de segurança, conforme descrito em Recursos de _strtimesegurança na CRT. _wstrtime

Sintaxe

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

Parâmetros

buffer
Um buffer de, pelo menos, 10 bytes de comprimento, no qual a hora será gravada.

numberOfElements
O tamanho do buffer.

Retornar valor

Zero se for bem-sucedido.

Se ocorrer uma condição de erro, o manipulador de parâmetros inválido será chamado, conforme descrito em Validação de parâmetro. Se houver uma falha, o valor retornado será um código de erro. Códigos de erro são definidos em ERRNO. H; consulte a tabela a seguir para os erros exatos gerados por esta função. Para obter mais informações sobre códigos de erro, consulte errno constantes.

Condições de erro

buffer numberOfElements Retorno Conteúdo de buffer
NULL (qualquer) EINVAL Não modificado
Não NULL (apontando para o buffer válido) 0 EINVAL Não modificado
Não NULL (apontando para o buffer válido) 0 < tamanho < 9 EINVAL Cadeia de caracteres vazia
Não NULL (apontando para o buffer válido) Tamanho > 9 0 Hora atual formatada conforme especificado nos comentários

Questões de segurança

Passar um não-valorNULL inválido para o buffer resultará em uma violação de acesso se o numberOfElements parâmetro for maior que 9.

Passar um valor numberOfElements que seja maior que o tamanho real do buffer resultará em estouro de buffer.

Comentários

Estas funções fornecem versões mais seguras de _strtime e _wstrtime. A _strtime_s função copia a hora local atual para o buffer apontado por buffer. A hora é formatada como hh:mm:ss onde hh são dois dígitos representando a hora em notação de 24 horas, é dois dígitos representando os minutos após a hora, mm e ss é dois dígitos representando segundos. Por exemplo, a cadeia de caracteres 18:23:44 representa 23 minutos e 44 segundos após as 18h. O buffer deve ter pelo menos 9 bytes de comprimento; O tamanho real é especificado pelo segundo parâmetro.

_wstrtime_s é uma versão de caractere largo de _strtime_s; o argumento e o valor retornado de _wstrtime_s são cadeias de caracteres largos. Caso contrário, essas funções se comportam de forma idêntica.

Em C++, o uso dessas funções é simplificado pelas sobrecargas de modelo; as sobrecargas podem inferir o tamanho do buffer automaticamente (eliminando a necessidade de especificar um argumento de tamanho) e podem substituir automaticamente funções mais antigas e não seguras por suas equivalentes mais recentes e seguras. Para obter mais informações, consulte Sobrecargas de modelo seguras.

As versões de biblioteca de depuração dessas funções preenchem o buffer com 0xFE. Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

Mapeamento de rotina de texto genérico

Rotina TCHAR.H _UNICODE e _MBCS não definidos _MBCS definido _UNICODE definido
_tstrtime_s _strtime_s _strtime_s _wstrtime_s

Requisitos

Rotina Cabeçalho necessário
_strtime_s <time.h>
_wstrtime_s <time.h> ou <wchar.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

// 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 );

}
OS time:            14:37:49
OS date:            04/25/03

Confira também

Gerenciamento de 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