Linux Strptime System Chamada em C

Linux Strptime System Chamada em C
A função strptime () usa a sintaxe dada pelo formato para converter a sequência de caracteres referenciada pelo buffer em dados que são colocados na estrutura "tm" referenciada por "tm". Aqui, o formato contém uma ou várias diretivas, mas não zero. Uma especificação de conversão ou um caractere regular (não% ou espaço em branco) pode ser encontrado em uma diretiva. Cada especificação de conversões consiste em um caractere "%" que compreende um ou mais caracteres de conversão que definem a substituição que deve ser feita que indica que a substituição é necessária. Para verificar se a função funciona conforme o esperado, tanto o formato quanto o buffer devem ter um espaço branco ou outro separador. Para manter a conversão de primeiro número de caracteres de conversão que correspondem ao segundo especificador de conversão, deve haver um separador entre as duas conversões de sequência em número.

Exemplo 1:

Vamos seguir o exemplo abaixo para ver a funcionalidade da função strptime na linguagem C. Aqui, imprimimos o ano com a função strptime. Como estamos no ano "2022", a função STRPTIME será produzida este ano. Dentro do arquivo de programa de C, inserimos o arquivo de cabeçalho “Time.H ”através do qual podemos obter as informações de data e hora. Depois disso, estabelecemos a função no principal () do programa.

Em seguida, criamos o buffer para a alocação de espaço para novos dados. O buffer é rotulado como o "resultado" e o tipo de dados atribuído ao buffer é char. Definimos o tamanho do "resultado" do buffer com o valor "100". Em seguida, construímos a variável "tempo" com o tipo de dados "time_t", que armazena o valor do tempo do sistema na linguagem C. A variável "tempo" é inicializada com a chamada do sistema "time (nulo)". Com essa chamada do sistema de tempo, o horário atual será recuperado.

Depois disso, empregamos a função STRPTIME que leva o "resultado", a função "sizeof" e a função local da hora como argumentos. A função local da hora insere a referência do "tempo" e é usada para representar o tempo presente do nosso sistema. Além disso, usamos o modificador "%y" na função Strptime, que é usada para exibir o ano no século. Na última linha do programa, temos uma instrução PRINTF onde usamos o %s. O especificador de formato %s da função printf nos permite imprimir uma string. O usuário recebeu uma mensagem que incluiu o ano atual.

#incluir
#incluir
int main (int argc, const char * argv [])

resultado de char [100];
tempo_t tempo;
Tempo = tempo (nulo);
strftime (resultado, sizeof (resultado), "%y", localTime (& time));
printf ("Estamos no ano %s !\ n ", resultado);
retornar 0;

Quando executamos o programa STRPTIME, o ano atual “2022” é obtido no shell do sistema.

Exemplo 2:

Vimos o desempenho da função strptime no programa de exemplo anterior. Como discutimos anteriormente, a função STRPTIME suporta vários modificadores no idioma C. Neste exemplo, tentamos usar alguns dos modificadores strptime para explorar sua funcionalidade. Aqui, usamos a diretiva #Define para adicionar a definição _xopen_source na seção de cabeçalho do seguinte programa. É usado para inserir as definições extras de funções existentes nos padrões x/aberto e posix.

Em seguida, também adicionamos alguns módulos necessários dos padrões C para a implementação do programa. Depois disso, construímos a principal função em que estabelecemos a estrutura "tm" para definir o tempo. Declaramos o objeto "tm" para o "struct tm". Em seguida, definimos o tamanho do buffer como "100" para a função strptime. Nós implantamos a função do MEMSET, que é conhecida como Setter de Memória. Como o nome sugere, é usado para preencher os blocos de memória com valor semântico.

Em seguida, invocamos a função strptime, onde demos os dados e o formato de tempo com os modificadores strptime. O modificador "%y" é usado para indicar o ano. "%M-%d" é usado para representar o mês e o dia. O modificador “%h:%m:%s” é formatado de uma maneira que proporcione o tempo em horas, minutos e segundos. Além disso, utilizamos outra função, strftime, para se diferenciar da função strptime.
A função strftime criou os caracteres do objeto do tempo. Ele toma o argumento como um buffer, o tamanho do buffer e alguns modificadores. Em seguida, coloca a função mantém o "buffer". O formato especificado de data e hora será exibido.

#Define _Xopen_source
#incluir
#incluir
#incluir
#incluir
int
Principal (vazio)

estrutura tm tm;
buffer de char [100];
Memset (& tm, 0, sizeof (struct tm));
strptime ("2022-10-9 12:25:05", "%y-%m-%d%h:%m:%s", & tm);
strftime (buffer, sizeof (buffer), " %d %b %y %h: %m", & tm);
puts (buffer);
saída (exit_success);

Ao executar o programa, obtivemos os dados e o tempo no formato especificado dado à função.

Exemplo 3:

Aqui, exibimos a data e a hora da região dos EUA usando a função strptime. Inserimos bibliotecas padrão no seguinte programa. Em seguida, implantamos a função principal, onde definimos o tamanho do buffer. Depois disso, definimos o objeto "tempo" com o tipo de dados "time_t". Em seguida, estabelecemos a estrutura "tm" que declara o objeto de ponteiro "timeptr" e "resultado". Em seguida, chamamos a função setlocale, onde definimos o local atual. O objeto "tempo" é definido com a chamada do sistema de tempo, que leva nulo como um valor.

Para o timeptr, atribuímos a função LocalETime, que é referenciada pelo "tempo". A função STRFTIME é empregada, que é atribuída a data e hora formatadas. Então, temos uma condição de if-else em que a condição se toma a função strptime com os argumentos. Quando a hora e a data especificadas dentro da função STRPTIME forem nula, a instrução printf será executada. Caso contrário, temos outra seção a ser executada. A parte else tem várias declarações PRINTF que utilizam os diferentes modificadores para a data e hora.

#Define _Xopen_source
#incluir
#incluir
#incluir
#incluir
#incluir
int main (vazio)

Char BUF [100];
tempo_t tempo;
struct tm *timeptr, resultado;
setLocale (LC_ALL, "/QSYS.Lib/en_us.LOCALIDADE");
Tempo = tempo (nulo);
timePtr = localTime (& time);
strftime (buf, sizeof (buf), "%a%m/%d/%y%r", timeptr);
if (strptime (BUF, "%a%m/%d/%y%r", e resultado) == null)
printf ("\ \ NStrptime falhou \ n");
outro

printf ("Hora da hora: %d \ n", resultado.tm_hour);
printf ("tempo em min: %d \ n", resultado.tm_min);
printf ("Time in Sec: %d \ n", resultado.tm_sec);
printf ("Hora em seg: %d \ n", resultado.tm_mon);
printf ("Hora do mês e dia: %d \ n", resultado.tm_mday);
printf ("Hora do ano: %d \ n", resultado.tm_year);
printf ("Hora do ano e dia: %d \ n", resultado.tm_yday);
printf ("Hora da semana e dia: %d \ n", resultado.tm_wday);

retornar 0;

Os seguintes dados e tempo convertidos são executados contra cada modificador da função STRPTIME.

Conclusão

Este guia é para a função STRPTIME Linux na linguagem de programação C. Explicamos a funcionalidade dessa função específica com os códigos de exemplo. Implementamos o acima e todos os códigos são executáveis ​​com o Ubuntu 22.04 Terminal. Além disso, vimos a diferença entre as duas funções, strptime e strftime, que são de alguma forma idênticas. A função STRPTIME cria uma saída de tempo a partir do texto, a entrada e a função STRFTIME fornece os dados da string a partir da entrada do tempo.