Compartir vía


_strdate_s, _wstrdate_s

Copia la fecha actual del sistema en un búfer. Estas funciones son versiones de _strdate, _wstrdate con mejoras de seguridad como se describe en Características de seguridad de CRT.

Sintaxis

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
Puntero a un búfer para colocar la cadena de fecha con formato.

size
Tamaño del búfer en unidades de caracteres.

Valor devuelto

Cero si es correcta. Si se produce un error, el valor devuelto es un código de error. Los códigos de error se definen en ERRNO.H; consulte la tabla siguiente para ver los errores exactos generados por esta función. Para obtener más información sobre los códigos de error, vea errno.

Condiciones de error

buffer size Return Contenido de buffer
NULL (cualquiera) EINVAL No modificado
No es NULL (apunta al búfer válido) 0 EINVAL No modificado
No es NULL (apunta al búfer válido) 0 <size< 9 EINVAL Cadena vacía
No es NULL (apunta al búfer válido) size>= 9 0 Fecha actual con el formato especificado en la sección de comentarios

Problemas de seguridad

Si pasa un valor no válido, distinto de NULL para buffer, se produce una infracción de acceso si el size parámetro es mayor que nueve.

Pasar un valor para size mayor que el tamaño real de da como resultado una saturación del buffer búfer.

Comentarios

Estas funciones proporcionan versiones más seguras de _strdate y _wstrdate. La _strdate_s función copia la fecha actual del sistema en el búfer al que bufferapunta . Tiene el formato mm/dd/yy, donde mm es el mes de dos dígitos, dd es el día de dos dígitos y yy son los dos últimos dígitos del año. Por ejemplo, la cadena 12/05/99 representa el 5 de diciembre de 1999. El búfer debe tener una longitud mínima de nueve caracteres.

_wstrdate_s es una versión con caracteres anchos de _strdate_s; el argumento y el valor devuelto de _wstrdate_s son cadenas de caracteres anchos. Por lo demás, estas funciones se comportan exactamente igual.

Cuando buffer es un NULL puntero o size tiene menos de nueve caracteres, se invoca al controlador de parámetros no válidos. Se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones devuelven -1. Se establecen errno en EINVAL si el búfer es o si size es NULL menor o igual que 0. O bien, se establecen errno en ERANGE si size es menor que 9.

En C++, las sobrecargas de plantilla simplifican el uso de estas funciones. Las sobrecargas pueden deducir automáticamente la longitud del búfer, lo que elimina la necesidad de especificar un size argumento. Además, pueden reemplazar automáticamente las funciones no seguras por sus homólogas más recientes y seguras. Para obtener más información, consulte Sobrecargas de plantillas seguras.

Las versiones de la biblioteca de depuración de estas funciones rellenan primero el búfer con 0xFE. Para deshabilitar este comportamiento, use _CrtSetDebugFillThreshold.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Asignación de rutinas de texto genérico:

Rutina TCHAR.H _UNICODE y _MBCS no definidos _MBCS definido _UNICODE definido
_tstrdate_s _strdate_s _strdate_s _wstrdate_s

Requisitos

Routine Encabezado necesario
_strdate <time.h>
_wstrdate <time.h> o <wchar.h>
_strdate_s <time.h>

Ejemplo

Vea el ejemplo de time.

Consulte también

Administración de tiempo
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