Partilhar via


_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