_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
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s