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