_strtime_s, _wstrtime_s

A hora atual para um buffer de cópia.Estas são as versões do _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

  • [out]buffer
    Um buffer de, pelo menos 10 bytes de comprimento, onde o tempo será gravado.

  • [in]numberOfElements
    O tamanho do buffer.

Valor de retorno

Zero se for bem sucedida.

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

Condições de erro

buffer

numberOfElements

Return

Conteúdo debuffer

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

Seqüência de caracteres vazia

Não NULL (apontando para o buffer válido)

Tamanho > 9

0

Hora atual é formatado conforme especificado nos comentários

Problemas de segurança

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

Passando um valor numberOfElements que é maior do que o tamanho real do buffer resultará na saturação de buffer.

Comentários

Essas funções fornecem versões mais seguras do _strtime e _wstrtime.O _strtime_s função copia a hora local atual para o buffer apontado por timestr*.* O tempo é formatado como hh:mm:ss onde hh é de dois dígitos que representa a hora na notação de 24 horas, mm é de dois dígitos que representa os minutos depois da hora, e ss é de dois dígitos que representa os segundos.Por exemplo, a seqüência de caracteres 18:23:44 representa 23 minutos e 44 segundos passados 6 P.M.O buffer deve ser pelo menos 9 bytes de comprimento; o tamanho real é especificado pelo segundo parâmetro.

_wstrtimeé uma versão de caractere largo de _strtime; o valor de argumento e o retorno de _wstrtime são seqüências de caracteres largos.Essas funções se comportam exatamente caso contrário.

No C++, a utilização dessas funções é simplificado pela sobrecargas do modelo; os métodos sobrecarregados podem inferir o comprimento do buffer automaticamente (eliminando a necessidade de especificar um argumento de tamanho) e eles podem substituir automaticamente os funções não seguras, mais antigas, com suas contrapartes mais recentes e seguras.Para obter mais informações, consulte Proteger Overloads de modelo.

Mapeamento de rotina de texto genérico:

TCHAR.Rotina H

_ Unicode & _ MBCS do arquivo não definido

_ MBCS do arquivo 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 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

tempo, _time32, _time64

_tzset