Compartilhar via


_strtime_s, _wstrtime_s

Copie a hora atuais para um buffer. Essas são versões de _strtime, _wstrtime com aprimoramentos de segurança conforme descrito em Recursos de segurança no 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

Parâmetros

  • [saída] buffer
    Um buffer, pelo menos 10 bytes, onde a hora serão gravados.

  • [entrada] numberOfElements
    O tamanho do buffer.

Valor de retorno

Nulo se com êxito.

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

Condições de erro

buffer

numberOfElements

Return

Conteúdo de buffer

NULL

(nenhum)

EINVAL

Não modificados

Não NULL (que aponta para o buffer válido)

0

EINVAL

Não modificados

Não NULL (que aponta para o buffer válido)

0 < tamanhos < 9

EINVAL

Cadeia de caracteres vazia

Não NULL (que aponta para o buffer válido)

Tamanho > 9

0

Hora atuais formatadas conforme especificado em comentários

Problemas de segurança

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

Passe um valor para numberOfElements que seja maior que o tamanho real do buffer resultará em excesso de buffer.

Comentários

Essas funções fornecem versões mais seguro de _strtime e de _wstrtime. A função de _strtime_s copia a hora local atual no buffer apontado por timestr*.* A hora é formatada como hh:mm:ss onde hh são dois dígitos que representam a hora na notação de 24 horas, mm são dois dígitos que representam os minutos depois da hora, e ss são dois dígitos que representam segundos. Por exemplo, a cadeia de caracteres 18:23:44 representa 23 minutos e 44 segundos depois de 6 PM. O buffer deve ser pelo menos 9 bytes; o tamanho real é especificado pelo segundo parâmetro.

_wstrtime é uma versão de ampla caractere de _strtime; o argumento e o valor de retorno de _wstrtime são cadeias de caracteres de ampla caractere. Essas funções se comportam exatamente o contrário.

No C++, o uso dessas funções é simplificado por sobrecargas de modelo; as sobrecargas podem interpretar o tamanho do buffer automaticamente (eliminando a necessidade de especificar um argumento de tamanho) e podem substituir automaticamente as funções menos seguras mais antigas por correspondentes mais seguras e mais recentes. Para obter mais informações, consulte Sobrecargas de modelo seguras.

Mapeamento de rotina de Genérico- texto:

Rotina TCHAR.H

_UNICODE & _MBCS não definido

_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 informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.

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

}
  

Equivalência do .NET Framework

Consulte também

Referência

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