Se recomienda usar Visual Studio 2017

_strtime_s, _wstrtime_s

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Copie la hora actual en un búfer. Estas son versiones de _strtime, _wstrtime con mejoras de seguridad, como se describe en características de seguridad de 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, al menos 10 bytes de longitud, donde se escribirá el tiempo.

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

Cero si es correcta.

Si se produce una condición de error, se invoca el controlador de parámetros no válidos, como se describe en validación del parámetro. El valor devuelto es un código de error si se produce un error. Códigos de error se definen en ERRNO. H; Consulte la tabla siguiente para exacta de los errores generados por esta función. Para obtener más información sobre códigos de error, consulte errno (constantes).

Condiciones de error

buffernumberOfElementsVolverContenido de buffer
NULL(any)EINVALNo modificado
No NULL (que señala al búfer válido)0EINVALNo modificado
No NULL (que señala al búfer válido)0< size="">< 9></ 9>EINVALCadena vacía
No NULL (que señala al búfer válido)Tamaño > 90Hora actual con el formato especificado en la sección de comentarios

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

Pasar un valor para numberOfElements que es mayor que el tamaño real del búfer se producirá la saturación del búfer.

Estas funciones proporcionan versiones más seguras de _strtime y _wstrtime. El _strtime_s función copia la hora local actual en el búfer señalado por timestr . La hora se formatea como hh:mm:ss donde hh dos dígitos que representa la hora en formato de 24 horas, mm es que representa los minutos transcurridos tras la hora de dos dígitos y ss dos dígitos que representa los segundos. Por ejemplo, la cadena 18:23:44 representa 23 minutos y 44 segundos más allá de 6 p. M. El búfer debe ser al menos 9 bytes de longitud; el segundo parámetro, se especifica el tamaño real.

_wstrtime es una versión con caracteres anchos de _strtime; el argumento y el valor devuelto de _wstrtime 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, consulta Secure Template Overloads.

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
RutinaEncabezado necesario
_strtime_s<time.h>
_wstrtime_s<time.h>o<wchar.h></wchar.h></time.h>

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

// 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  

Administración del 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
tiempo, _time32, _time64
_tzset

Mostrar: