ctime_s
, _ctime32_s
, _ctime64_s
, _wctime_s
, _wctime32_s
, , _wctime64_s
Converta um valor temporal em uma cadeia de caracteres e ajuste as configurações de fuso horário local. Essas funções são versões de , _ctime64
, _wctime
, _wctime64
com aprimoramentos dectime
segurança, conforme descrito em Recursos de segurança no CRT.
Sintaxe
errno_t ctime_s(
char* buffer,
size_t numberOfElements,
const time_t *sourceTime
);
errno_t _ctime32_s(
char* buffer,
size_t numberOfElements,
const __time32_t *sourceTime
);
errno_t _ctime64_s(
char* buffer,
size_t numberOfElements,
const __time64_t *sourceTime )
;
errno_t _wctime_s(
wchar_t* buffer,
size_t numberOfElements,
const time_t *sourceTime
);
errno_t _wctime32_s(
wchar_t* buffer,
size_t numberOfElements,
const __time32_t *sourceTime
);
errno_t _wctime64_s(
wchar_t* buffer,
size_t numberOfElements,
const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
char (&buffer)[size],
const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
char (&buffer)[size],
const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
wchar_t (&buffer)[size],
const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
wchar_t (&buffer)[size],
const __time64_t *sourceTime
); // C++ only
Parâmetros
buffer
Deve ser grande o suficiente para conter 26 caracteres. Um ponteiro para o resultado da cadeia de caracteres ou NULL
se:
sourceTime
representar uma data anterior à meia-noite de 1º de janeiro de 1970, UTC.Se você usar
_ctime32_s
ou_wctime32_s
esourceTime
representar uma data posterior a 23:59:59, 18 de janeiro de 2038, UTC.Se você usar
_ctime64_s
ou_wctime64_s
esourceTime
representar uma data posterior a 23:59:59, 31 de dezembro de 3000, UTC.Se você usar
_ctime_s
ou_wctime_s
, essas funções serão wrappers para as funções anteriores. Consulte a seção Comentários.
numberOfElements
O tamanho do buffer.
sourceTime
Ponteiro para a hora armazenada.
Valor retornado
Zero se for bem-sucedido. Se houver uma falha devido a um parâmetro inválido, o manipulador de parâmetro inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, um código de erro será retornado. Os códigos de erro são definidos em ERRNO. H; Para obter uma lista desses erros, consulte errno
. Os códigos de erro reais gerados para cada condição de erro são mostrados na tabela a seguir.
Condições de erro
buffer |
numberOfElements |
sourceTime |
Return | Valor em buffer |
---|---|---|---|---|
NULL |
any | any | EINVAL |
Não modificado |
Não é NULL (aponta para a memória válida) |
0 | any | EINVAL |
Não modificado |
Não é NULL |
0< tamanho < 26 | any | EINVAL |
Cadeia de caracteres vazia |
Não é NULL |
>= 26 | NULO | EINVAL |
Cadeia de caracteres vazia |
Não é NULL |
>= 26 | < 0 | EINVAL |
Cadeia de caracteres vazia |
Comentários
A ctime_s
função converte um valor de tempo armazenado como uma time_t
estrutura em uma cadeia de caracteres. O sourceTime
valor normalmente é obtido de uma chamada para time
, que retorna o número de segundos decorridos desde a meia-noite (00:00:00) de 1º de janeiro de 1970, UTC (tempo universal coordenado). A cadeia de caracteres do valor retornado contém exatamente 26 caracteres e tem o formato:
Wed Jan 2 02:03:55 1980\n\0
Um relógio de 24 horas é usado. Todos os campos têm uma largura constante. O caractere de nova linha ('\n') e o caractere nulo ('\0') ocupam as duas últimas posições da cadeia de caracteres.
A cadeia de caracteres convertida também é ajustada de acordo com as configurações de fuso horário local. Para obter informações sobre como configurar a hora local, consulte as time
funções , _ftime
e localtime
. Para obter detalhes sobre como definir o ambiente de fuso horário e as variáveis globais, consulte a _tzset
função.
_wctime32_s
e _wctime64_s
são a versão de caractere largo de _ctime32_s
e _ctime64_s
, retornando um ponteiro para a cadeia de caracteres largos. Caso contrário, _ctime64_s
, _wctime32_s
e _wctime64_s
se comportarão de modo idêntico a _ctime32_s
.
ctime_s
é uma função embutida que é avaliada como _ctime64_s
e time_t
é equivalente a __time64_t
. Se você precisar forçar o compilador a interpretar time_t
como o time_t
antigo de 32 bits, poderá definir _USE_32BIT_TIME_T
. Essa macro faz com que ctime_s
a avaliação seja _ctime32_s
. Não o recomendamos, pois seu aplicativo pode falhar após 18 de janeiro de 2038 e não é permitido em plataformas de 64 bits.
No C++, o uso dessas funções é simplificado por sobrecargas de modelo. As sobrecargas podem inferir automaticamente o tamanho do buffer, eliminando a necessidade de especificar um argumento de tamanho. Para obter mais informações, consulte Sobrecargas de modelo seguras.
As versões de biblioteca de depuração dessas funções preenchem o buffer com 0xFE. Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold
.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H | _UNICODE e _MBCS não definidos |
_MBCS 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 sobre compatibilidade, consulte Compatibilidade.
Bibliotecas
Todas as versões das bibliotecas em 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 );
}
The time is Fri Apr 25 13:03:39 2003
Confira também
Gerenciamento de tempo
asctime_s
, _wasctime_s
ctime
, _ctime32
, _ctime64
, _wctime
, _wctime32
, , _wctime64
_ftime
, _ftime32
, _ftime64
gmtime_s
, _gmtime32_s
, _gmtime64_s
localtime_s
, _localtime32_s
, _localtime64_s
time
, _time32
, _time64