_strtime_s
, _wstrtime_s
Copia la hora actual en un búfer. Estas funciones son versiones de _strtime
, _wstrtime
con mejoras de seguridad, como se describe en Características de seguridad de CRT.
Sintaxis
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
Búfer (con una longitud mínima de 10 bytes) en el que se escribirá la hora.
numberOfElements
Tamaño del búfer.
Valor devuelto
Cero si es correcta.
Si se produce una condición de error, se invoca al controlador de parámetros no válidos, como se describe en Validación de parámetros. 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, consulte errno
constantes.
Condiciones del error
buffer |
numberOfElements |
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 < tamaño < 9 | EINVAL |
Cadena vacía |
No es NULL (apunta al búfer válido) |
Tamaño > 9 | 0 | Hora actual con el formato especificado en la sección de comentarios |
Problemas de seguridad
Si se pasa un valor no válidoNULL
para el búfer, se producirá una infracción de acceso si el numberOfElements
parámetro es mayor que 9.
Si se pasa un valor de numberOfElements
que es mayor que el tamaño real del búfer, se producirá una saturación en el búfer.
Comentarios
Estas funciones proporcionan versiones más seguras de _strtime
y _wstrtime
. La _strtime_s
función copia la hora local actual en el búfer al que buffer
apunta . La hora tiene el formato hh:mm:ss , donde hh
es dos dígitos que representan la hora en notación de 24 horas, mm
es dos dígitos que representan los minutos pasados de la hora y ss
son dos dígitos que representan segundos. Por ejemplo, la cadena 18:23:44 representa 23 minutos y 44 segundos después de las 6 p.m. El búfer debe tener al menos 9 bytes de longitud; el segundo parámetro especifica el tamaño real.
_wstrtime_s
es una versión con caracteres anchos de _strtime_s
; el argumento y el valor devuelto de _wstrtime_s
son cadenas de caracteres anchos. Por lo demás, estas funciones se comportan exactamente igual.
En C++, el uso de estas funciones se simplifica con las sobrecargas de plantilla; las sobrecargas pueden realizar una inferencia automáticamente de la longitud de búfer (lo que elimina el requisito de especificar un argumento de tamaño) y pueden reemplazar automáticamente funciones anteriores no seguras con sus homólogos seguros más recientes. Para obtener más información, consulte Sobrecargas de plantilla 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 rutina de texto genérico
Rutina TCHAR.H | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Requisitos
Routine | Encabezado necesario |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<time.h> o <wchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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
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