Share via


_strtime_s, _wstrtime_s

Copie la hora actual en un búfer.Éstas son versiones de _strtime, _wstrtime con mejoras de seguridad como se describe en Características de seguridad en CRT.

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

  • [out] buffer
    Un búfer, por lo menos 10 bytes de longitud, donde el tiempo se escribirá.

  • [in] numberOfElements
    Tamaño del búfer.

Valor devuelto

cero si correctamente.

Si una condición de error, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.el valor devuelto es un código de error si hay un error.Los códigos de error se definen en ERRNO.H; vea la tabla siguiente para los errores exactos generados por esta función.Para obtener más información sobre los códigos de error, vea constantes de errno.

condiciones de error

buffer

numberOfElements

Return

Contenido de buffer

NULL

(ninguno)

EINVAL

no modificado

No NULL (del búfer válido)

0

EINVAL

no modificado

No NULL (del búfer válido)

0 Tamaños < 9 de <

EINVAL

Cadena vacía

No NULL (del búfer válido)

Tamaño > 9

0

Hora actual con formato como se especifica en las notas

problemas de seguridad

Se pasa un valor NULL no válido para el búfer producirá una infracción de acceso si el parámetro de numberOfElements es mayor que 9.

Pasar un valor para numberOfElements mayor que el tamaño real del búfer dará lugar a la saturación del búfer.

Comentarios

estas funciones proporcionan versiones más seguras de _strtime y de _wstrtime.La función de _strtime_s copia la hora local actual en el búfer indicada por timestr*.* El tiempo se le da formato a hh:mm:ss donde dos dígitos hh que representan la hora en la notación de 24 horas, mm es dos dígitos que representan los minutos más allá de la hora, y ss es dos dígitos que representan segundos.por ejemplo, la cadena 18:23:44 representa 23 minutos y 44 segundos más allá 6 de la tarde.El búfer debe ser por lo menos 9 bytes de longitud; el tamaño real es especificado por el segundo parámetro.

_wstrtime es una versión con caracteres anchos de _strtime; el argumento y el valor devuelto de _wstrtime son cadenas de caracteres.Estas funciones se comportan exactamente igual de otra manera.

En C++, mediante estas funciones es simplificado con sobrecargas de plantilla; las sobrecargas pueden deducir la longitud de búfer automáticamente (que elimina la necesidad de especificar un argumento de tamaño) y automáticamente pueden reemplazar anterior, funciones de no con sus más recientes, seguros homólogos.Para obtener más información, vea Sobrecargas de plantilla de seguridad.

Asignación rutinaria de texto genérico:

rutina de TCHAR.H

_UNICODE y _MBCS no definido

_MBCS definido

_UNICODE definido

_tstrtime_s

_strtime_s

_strtime_s

_wstrtime_s

Requisitos

rutina

Encabezado necesario

_strtime_s

<time.h>

_wstrtime_s

<time.h> o <wchar.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

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 );

}
  

Equivalente en .NET Framework

Vea también

Referencia

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