commit f9b27cf362576770aa0c2f6663f2a1d77664d744
parent 3e543c6377d96162ac9de31ea729aaf5b391f2ae
Author: klewer-martin <martin.cachari@gmail.com>
Date: Wed, 3 Feb 2021 14:16:25 -0300
Added more error codes, and print on error, also deleted time_translator.c and
time_translator.h which were old test programs that are not in use anymore;
Diffstat:
6 files changed, 25 insertions(+), 55 deletions(-)
diff --git a/input.csv b/input.csv
@@ -1,5 +1,5 @@
PAIS, FECHA, INFECTADOS
-32,1577880000
+32,1577880000,2342
32,1578657600,4923
32,1579089600,9324
170,1577880000,8234
diff --git a/macros.h b/macros.h
@@ -19,17 +19,24 @@
"\t$ ./main -out <output file -in <input file>\n"\
"Read documentation to know more"
-#define MSG_FILE_NOT_FOUND "No se ha encontrado dicho archivo\n"
+#define MSG_FILE_NOT_FOUND "FILE_NOT_FOUND\n"\
+ "No se ha encontrado dicho archivo"
-#define MSG_ERROR_LOADING_COUNTRY_CODES
+#define MSG_ERROR_LOADING_COUNTRY_CODES "Ha ocurrido un error al cargar los codigos de los paises\n"\
+ "compruebe que el archivo \"iso3166-1.csv\" se encuentre\n"\
+ "disponible en el directorio en el el programa ha sido ejecutado"
#define MSG_ERROR_PRINTING
-#define MSG_ERROR_READING_FILE
-#define MSG_ERROR_ALLOCATING_TIME
+#define MSG_ERROR_READING_FILE "\nERROR_READING_FILE\n"\
+ "El archivo de entrada no pudo ser leido, compruebe que el nombre este\n"\
+ "escrito correctamente y la existencia de el mismo"
+
+#define MSG_ERROR_ALLOCATING_TIME "\nstrftime(3): el formato especificado "
+
#define MSG_ERROR_DATA_ON_FILE_MISSING "\nERROR_DATA_ON_FILE_MISSING\n"\
"En alguna linea de el archivo de entrada falta un dato,\n"\
"compruebe que dicho archivo no esta corrupto y ejecute\n"\
"el programa nuevamente"
-#define MSG_OK "Everything executed correctly\n"
+#define MSG_OK "\nEverything executed correctly.\n"
#endif
diff --git a/main.c b/main.c
@@ -59,5 +59,6 @@ int main(int argc, char * argv[])
return st;
}
+ printf(MSG_OK);
return OK;
}
diff --git a/readlines.c b/readlines.c
@@ -31,8 +31,8 @@ status_t readlines(char *src, char *dest)
unsigned long infected;
-// Abre el archivo de entrada en modo lectura si por algun motivo no se puede
-// abrir devuelve un codigo de error;
+// Abre el archivo de entrada en modo lectura si por algun motivo no se puede
+// abrir devuelve un codigo de error;
if((fp = fopen(src, "r")) == NULL)
return ERROR_READING_FILE;
@@ -128,8 +128,11 @@ status_t print_country(size_t country_code, char country_codes[COUNTRIES_NUMBER]
status_t print_date(size_t date)
{
char time_c[TIME_MAX_DIGITS];
-
- time_translator(date, time_c, sizeof(time_c));
+ status_t st;
+
+ if((st = time_translator(date, time_c, sizeof(time_c))) != OK)
+ return st;
+
printf("Fecha: %s\n", time_c);
return OK;
@@ -149,7 +152,7 @@ status_t clean_buffer(char *buffer)
while(*buffer != '\0')
{
- (*buffer) = ' ';
+ (*buffer) = '\0';
buffer++;
}
return OK;
@@ -158,6 +161,9 @@ status_t clean_buffer(char *buffer)
status_t time_translator(time_t unix_time, char *res, size_t size)
{
+ if(res == NULL)
+ return ERROR_NULL_POINTER;
+
const char *format = date_print_format;
struct tm *tmp = gmtime(&unix_time);
diff --git a/time_translator.c b/time_translator.c
@@ -1,38 +0,0 @@
-#include <stdio.h>
-#include <time.h>
-#include <string.h>
-
-const char default_format[] = "%B %d %Y";
-
-typedef enum {
- OK,
- ERROR_NULL_POINTER
-} status_t;
-
-status_t date_translator(time_t unix_time, char *res, size_t size)
-{
- const char *format = default_format;
- struct tm *tmp = gmtime(&unix_time);
-
- if (strftime(res, size, format, tmp) == 0) {
- (void) fprintf(stderr, "strftime(3): cannot format supplied "
- "date/time into buffer of size %u "
- "using: '%s'\n",
- (unsigned int)sizeof(res), format);
- return 1;
- }
- return 0;
-}
-
-int main (void)
-{
- char res[32];
-
- time_t t;
-
- t = 1577880000;
-
- date_translator(t, res, sizeof(res));
- puts(res);
- return 0;
-}
diff --git a/time_translator.h b/time_translator.h
@@ -1,6 +0,0 @@
-#ifndef TIME_TRANSLATOR
-#define TIME_TRANSLATOR
-
-
-
-#endif