Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

414
Views
Cómo analizar valores de una cadena C en una especificación de tiempo de estructura

Mi programa recibirá entrada de cadena C en el formato de Wed, 21 Oct 2015 07:28:00 GMT , por ejemplo

 char * date = "Wed, 21 Oct 2015 07:28:00 GMT"

¿Cómo convertir esto en un struct timespec para poder compararlo con st_atim, st_mtim y st_ctim struct timespec devueltos por la función stat()?

Esta publicación habla sobre strptime y sscanf, y también encontré strftime , pero todos estos se convierten en struct time_t o struct tm o valores enteros.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Mire la definición de una timespec de tiempo:

 struct timespec { time_t tv_sec; // Seconds long tv_nsec; // Nanoseconds };

Entonces, no es más que un time_t con un número adicional de nanosegundos.

Una cadena como la que mostró ( Wed, 21 Oct 2015 07:28:00 GMT ) ni siquiera tiene nada más granular que segundos, por lo que los nanosegundos apenas importarán, y puede analizarlo en un time_t que entra en tv_sec y establecer tv_nsec a cero.

Por cierto, lo más probable es que el formato que mostraste se base en las especificaciones descritas en RFC 822 / RFC 1123 / RFC 2822 . Esto debería facilitar mucho la búsqueda de código que lo analice, por ejemplo, this . Esto también se conoce informalmente como "fecha HTTP" debido a su uso en los encabezados HTTP. De hecho, libcurl tiene una función curl_getdate que lo analiza. Puedes ver su código fuente en C aquí .

Ejemplo:

 #include <curl/curl.h> timespec ts = {0}; ts.tv_sec = curl_getdate(inputString, NULL);

A menos que ya use libcurl en otro lugar, esto podría ser una sobrecarga innecesariamente grande, pero puede tomarlo como inspiración o buscar otros métodos de análisis que también le den un time_t .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!