_strdate_s
, _wstrdate_s
Copie a data atual do sistema para um buffer. Estas funções são versões de _strdate
, _wstrdate
com aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.
Sintaxe
errno_t _strdate_s(
char *buffer,
size_t size
);
errno_t _wstrdate_s(
wchar_t *buffer,
size_t size
);
template <size_t size>
errno_t _strdate_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrdate_s(
wchar_t (&buffer)[size]
); // C++ only
Parâmetros
buffer
Um ponteiro para um buffer para colocar a cadeia de data formatada.
size
Tamanho do buffer em unidades de caracteres.
Valor retornado
Zero se for bem-sucedido. 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 abaixo para os erros exatos gerados por esta função. Para obter mais informações sobre códigos de erro, consulte errno
.
Condições de erro
buffer |
size |
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 <size < 9 |
EINVAL |
Cadeia de caracteres vazia |
Não NULL (apontando para o buffer válido) |
size >= 9 |
0 | Data atual formatada conforme especificado nos comentários |
Questões de segurança
Se você passar um valor inválido e não NULL para buffer
, isso resultará em uma violação de acesso se o size
parâmetro for maior que nove.
Passar um valor maior size
que o tamanho real de resulta em uma saturação de buffer
buffer.
Comentários
Estas funções fornecem versões mais seguras de _strdate
e _wstrdate
. A _strdate_s
função copia a data atual do sistema para o buffer apontado por buffer
. É formatado mm/dd/yy
, onde mm
é o mês de dois dígitos, dd
é o dia de dois dígitos e yy
é os dois últimos dígitos do ano. Por exemplo, a cadeia de caracteres 12/05/99
representa 5 de dezembro de 1999. O buffer deve ter, no mínimo, nove caracteres de comprimento.
_wstrdate_s
é uma versão de caractere largo de _strdate_s
; o argumento e o valor retornado de _wstrdate_s
são cadeias de caracteres largos. Caso contrário, essas funções se comportam de forma idêntica.
Quando buffer
é um NULL
ponteiro ou size
tem menos de nove caracteres, o manipulador de parâmetro inválido é invocado. Ele é descrito em Validação de parâmetro. Se a execução puder continuar, essas funções retornarão -1. Eles definem errno
como EINVAL
se o buffer for NULL
ou se size
for menor ou igual a 0. Ou eles definem errno
como ERANGE
se size
for menor que 9.
No C++, o uso dessas funções é simplificado por sobrecargas de modelo. As sobrecargas podem inferir o comprimento do buffer automaticamente, o que elimina a necessidade de especificar um size
argumento. E, elas podem substituir automaticamente funções não seguras por suas equivalentes 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 da rotina de texto genérico:
Rotina TCHAR.H | _UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tstrdate_s |
_strdate_s |
_strdate_s |
_wstrdate_s |
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_strdate |
<time.h> |
_wstrdate |
<time.h> ou <wchar.h> |
_strdate_s |
<time.h> |
Exemplo
Confira o exemplo de time
.
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