1ER CUATRIMESTRE 2024 FECHA DE ENTREGA 17/07
- GERONIMO ASIN (L. 65486) (GeronimoAsin)
- LAUTARO EZEQUIEL DOMINGUEZ (L. 65723) (Lautaro-Dominguez)
Este documento proporciona una descripción del trabajo realizado y una guía detallada para la compilación y ejecución de los programas parkingTicketsNYC y parkingTicketsCHI utilizando la herramienta make del archivo Makefile.
A continuación se detallan los archivos realizados para el correcto funcionamiento del programa.
ticketsADT
TAD principal para el almacenaje y procesamiento de los datos de entrada. Contiene las estructuras y funciones utilizadas para el almacenaje de los datos provistos, así como las funciones utilizadas para resolver los Queries y para ordenar los datos de salida.
Archivos main
En los archivos fuente parkingTicketsNYC.c y parkingTicketsCHI.c se validan y envian los argumentos proporcionados por linea de comando del ejecutable de cada ciudad. Una vez procesados los datos por las funciones del TAD ticketsADT ambos parkingTicketsNYC.c y parkingTicketsCHI.c generan los archivos de salida .csv y HTML
Libreria frontLib
Hemos realizado la libreria frontLib con el objetivo de poder validar y manipular los inputs propocionados por linea de comando a los ejecutables parkingTicketsNYC y parkingTicketsCHI. Asímismo frontLib contiene las funciones necesarias para el cerrado de archivos y la liberación de memoria para ambos ejecutables. Si el programa sufriera algun error en su ejecución ya sea por una falla en la creacion de memoria, apertura de un archivo inexistente o incorrecto, creación de un archivo o por un error de argumentos en la linea de comando, frontLib.h contiene las funciones necesarias para avisar al usuario del error, cortar la ejecución del programa informando la falla ocacionada.
Carpeta Lib
Libreria html provista por la catedra.
-
Para compilar ambos programas a la vez, ejecute en su terminal desde el directorio que se encuentra el archivo
Makefileel comandomakeGENERARÁ DOS EJECUTABLESparkingTicketsNYCyparkingTicketsCHI -
En el caso de desear compilar un solo programa, especifique el nombre del programa posterior al comando
make:
make parkingTicketsNYC
o bien
make parkingTicketsCHI
Una vez compilados, puede ejecutar los programas desde la línea de comandos de su terminal:
Para parkingTicketsNYC:
./parkingTicketsNYC ticketsNYC.csv infractionsNYC.csv
Para parkingTicketsCHI:
./parkingTicketsCHI ticketsCHI.csv infractionsCHI.csv
Para eliminar todos los archivos .o HTML .csv ejecute:
make clean
Si desea eliminar los ejecutables .o ejecute:
make cleanOut
Si desea eliminar las tablas HTML ejecute:
make cleanHTML
Si desea eliminar los .csv de salida ejecute:
make cleanQueries
En muy raras ocasiones, al ejecutar el programa desde Pampero, se obtiene el siguiente mensaje:
AddressSanitizer:DEADLYSIGNAL ================================================================= ==753767==ERROR: AddressSanitizer: SEGV on unknown address 0x61adf3055e78 (pc 0x732bbdd3538f bp 0x000000000000 sp 0x7ffe1cc1e780 T0) ==753767==The signal is caused by a READ memory access. AddressSanitizer:DEADLYSIGNAL AddressSanitizer: nested bug in the same thread, aborting.
Al volver a ejecutarlo, el programa funciona correctamente