_strtime_s
, _wstrtime_s
Copia a hora atual para um buffer. Estas funções são versões de _strtime
, _wstrtime
com aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.
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.
Valor retornado
Zero se for bem-sucedido.
Se ocorrer uma condição de erro, o manipulador de parâmetro inválido será invocado, 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 |
Return | 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 que representam a hora em notação de 24 horas, mm
são dois dígitos que representam os minutos após a 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 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, confira Estado global no 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