ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
Converter um valor de tempo em uma seqüência de caracteres e ajuste de configurações de fuso horário local.Estas são as versões do a ctime, _ctime64, _wctime, _wctime64 com aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.
errno_t ctime_s(
char* buffer,
size_t numberOfElements,
const time_t *time
);
errno_t _ctime32_s(
char* buffer,
size_t numberOfElements,
const __time32_t *time
);
errno_t _ctime64_s(
char* buffer,
size_t numberOfElements,
const __time64_t *time )
;
errno_t _wctime_s(
wchar_t* buffer,
size_t numberOfElements,
const time_t *time
);
errno_t _wctime32_s(
wchar_t* buffer,
size_t numberOfElements,
const __time32_t *time
);
errno_t _wctime64_s(
wchar_t* buffer,
size_t numberOfElements,
const __time64_t *time
);
template <size_t size>
errno_t _ctime32_s(
char (&buffer)[size],
const __time32_t *time
); // C++ only
template <size_t size>
errno_t _ctime64_s(
char (&buffer)[size],
const __time64_t *time
); // C++ only
template <size_t size>
errno_t _wctime32_s(
wchar_t (&buffer)[size],
const __time32_t *time
); // C++ only
template <size_t size>
errno_t _wctime64_s(
wchar_t (&buffer)[size],
const __time64_t *time
); // C++ only
Parâmetros
[out]buffer
Deve ser grande o suficiente para conter 26 caracteres.Um ponteiro para o resultado de seqüência de caracteres, ou NULLse:timerepresenta uma data anterior à meia-noite de 1º de janeiro de 1970, UTC.
Se você usar _ctime32_s ou _wctime32_s e time representa uma data após 03: 14: 07 em 19 de janeiro de 2038.
Se você usar _ctime64_s ou _wctime64_s e time representa uma data posterior a 23: 59: 59, 31 de dezembro de 3000, a UTC.
Se você usar _ctime_s ou _wctime_s, essas funções são wrappers para as funções anteriores.Consulte a seção comentários.
[in]numberOfElements
O tamanho do buffer.[t in]ime
Ponteiro para o tempo armazenado.
Valor de retorno
Zero se for bem sucedida.Se houver uma falha devido a um parâmetro inválido, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, será retornado um código de erro.Códigos de erro são definidos no ERRNO.H; Para obter uma lista desses erros, consulte errno.Os códigos de erro real lançados para cada condição de erro são mostrados na tabela a seguir.
Condições de erro
buffer |
numberOfElements |
time |
Return |
O valorbuffer |
---|---|---|---|---|
NULL |
any |
any |
EINVAL |
Não modificado |
Não NULL (aponta para memória válido) |
0 |
any |
EINVAL |
Não modificado |
NãoNULL |
0 < tamanho < 26 |
any |
EINVAL |
Seqüência de caracteres vazia |
NãoNULL |
> = 26 |
NULL |
EINVAL |
Seqüência de caracteres vazia |
NãoNULL |
> = 26 |
< 0 |
EINVAL |
Seqüência de caracteres vazia |
Comentários
O ctime_s função converte um valor de tempo armazenado como um time_t estrutura em uma seqüência de caracteres.O time valor geralmente é obtido de uma chamada para tempo, que retorna o número de segundos passado desde meia-noite (00: 00), 1 de janeiro de 1970, hora universal coordenada (UTC).A seqüência de caracteres do valor de retorno contém exatamente 26 caracteres e tem o seguinte formato:
Wed Jan 02 02:03:55 1980\n\0
É usado um relógio de 24 horas.Todos os campos tem uma largura de constante.O caractere de nova linha ('\n') e o caractere nulo ('\0') ocupam as duas últimas posições da seqüência de caracteres.
A seqüência de caracteres convertidas também é ajustada de acordo com as configurações de fuso horário local.Consulte o time, _ftime, e localtime32_s funções para obter informações sobre como configurar a hora local e o _tzset a função para obter informações sobre como definir o ambiente de fuso horário e variáveis globais.
_wctime32_se _wctime64_s são da versão de caractere largo de _ctime32_s e _ctime64_s; retornando um ponteiro para a cadeia de caracteres largos.Otherwise, _ctime64_s, _wctime32_s, and _wctime64_s behave identically to _ctime32_s.
ctime_sé uma função in-line que é avaliada como _ctime64_s e time_t é equivalente a __time64_t.Se você precisar forçar o compilador para interpretar time_t como o antigo 32-bit time_t, você pode definir _USE_32BIT_TIME_T.Fazendo isso fará com que ctime_s a ser avaliada como _ctime32_s.Isso não é recomendado porque seu aplicativo pode falhar após 18 de janeiro de 2038, e não é permitido em plataformas de 64 bits.
No C++, a utilização dessas funções é simplificado pela sobrecargas do modelo; os métodos sobrecarregados podem inferir comprimento do buffer automaticamente, eliminando a necessidade de especificar um argumento de tamanho.Para obter mais informações, consulte Proteger Overloads de modelo.
Mapeamentos de rotina de texto genérico
TCHAR.Rotina H |
_ Unicode & _ MBCS do arquivo não definido |
_ MBCS do arquivo definido |
_ Unicode definido |
---|---|---|---|
_tctime_s |
ctime_s |
ctime_s |
_wctime_s |
_tctime32_s |
_ctime32_s |
_ctime32_s |
_wctime32_s |
_tctime64_s |
_ctime64_s |
_ctime64_s |
_wctime64_s |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
ctime_s, _ctime32_s, _ctime64_s |
<time.h> |
_wctime_s, _wctime32_s, _wctime64_s |
<time.h> ou <wchar.h> |
Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.
Bibliotecas
Todas as versões da bibliotecas de tempo de execução c.
Exemplo
// crt_wctime_s.c
/* This program gets the current
* time in time_t form and then uses _wctime_s to
* display the time in string form.
*/
#include <time.h>
#include <stdio.h>
#define SIZE 26
int main( void )
{
time_t ltime;
wchar_t buf[SIZE];
errno_t err;
time( <ime );
err = _wctime_s( buf, SIZE, <ime );
if (err != 0)
{
printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
}
wprintf_s( L"The time is %s\n", buf );
}
Saída de exemplo
The time is Fri Apr 25 13:03:39 2003
Equivalência do .NET Framework
Consulte também
Referência
a ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s