Annotation of ADD_ver_10/Notificaciones.c, revision 1.1
1.1 ! rico 1: /********************************************************************/
! 2: /* Notificaciones.c */
! 3: /* */
! 4: /* Copyright (c) 1997-2006 Rafael Rico (rafael.rico@uah.es) */
! 5: /* */
! 6: /* This file is part of ADD version 5.10. */
! 7: /* */
! 8: /* ADD is free software; you can redistribute it and/or modify */
! 9: /* it under the terms of the GNU General Public License as */
! 10: /* published by the Free Software Foundation; either version 2 of */
! 11: /* the License, or (at your option) any later version. */
! 12: /* */
! 13: /* ADD is distributed in the hope that it will be useful, */
! 14: /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
! 15: /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
! 16: /* GNU General Public License for more details. */
! 17: /* */
! 18: /* You should have received a copy of the GNU General Public */
! 19: /* License along with ADD; if not, write to the Free Software */
! 20: /* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA */
! 21: /* 02111-1307 USA */
! 22: /* */
! 23: /* --------------------------- History --------------------------- */
! 24: /* */
! 25: /* Revision 1.2. 01/2006 */
! 26: /* Added GPL License and JavaDoc style documentation */
! 27: /* */
! 28: /* Revision 1.1. 09/2005 */
! 29: /* Initial Revision */
! 30: /* */
! 31: /********************************************************************/
! 32:
! 33:
! 34: /******************************************************************************/
! 35: /* MÓDULO: Notificaciones.c */
! 36: /* */
! 37: /* Este módulo contiene las funciones que anotan notificación de sucesos */
! 38: /* o errores en un fichero especial (notificaciones.log). */
! 39: /******************************************************************************/
! 40: /* Fecha: 16 de septiembre de 2005 */
! 41: /******************************************************************************/
! 42:
! 43: #include <stdio.h>
! 44: #include <stdlib.h>
! 45: #include <string.h>
! 46: #include <ctype.h>
! 47: #include <time.h>
! 48:
! 49: #include "defines.h"
! 50: #include "tipos.h"
! 51: #include "notificaciones.h"
! 52:
! 53: /* configuración */
! 54: extern struct argumentos configuracion;
! 55:
! 56:
! 57:
! 58: /* NOTIFICACIONES Y GESTIÓN DE ERRORES */
! 59:
! 60: void IniciarNotificaciones()
! 61: {
! 62: time_t tiempo;
! 63: struct tm *ptr_tm;
! 64: FILE *handle;
! 65: char fichero[MAX_LINE];
! 66: char buffer[9];
! 67:
! 68: /* nombre del fichero de notificaciones */
! 69: strcpy(fichero, "notificaciones.log");
! 70:
! 71: /* abro el fichero de notificaciones y escribo una cabecera */
! 72: if((handle = fopen(fichero, "w")) != NULL)
! 73: {
! 74: fprintf(handle, "FICHERO DE NOTIFICACIONES\n");
! 75: /* OJO: el formato de fecha está en inglés */
! 76: /* esto no es ANSI
! 77: _strdate(buffer);
! 78: fprintf(handle, "Fecha %s \n", buffer);
! 79: _strtime(buffer);
! 80: fprintf(handle, "Hora %s \n\n", buffer);
! 81: */
! 82:
! 83: /* fecha y hora */
! 84: tiempo = time(NULL);
! 85: ptr_tm = localtime(&tiempo);
! 86: strftime(buffer, MAX_LINE, "%d/%m/%y", ptr_tm);
! 87: fprintf(handle, "Fecha %s \n", buffer);
! 88: strftime(buffer, MAX_LINE, "%H:%M:%S", ptr_tm);
! 89: fprintf(handle, "Hora %s \n\n", buffer);
! 90:
! 91:
! 92: if(fclose(handle))
! 93: {
! 94: fprintf(handle, "El fichero '%s' no se ha podido cerrar\n", fichero);
! 95: printf("El fichero '%s' no se ha podido cerrar\n", fichero);
! 96: }
! 97: }
! 98: else
! 99: {
! 100: printf("El fichero '%s' no se ha podido abrir\n", fichero);
! 101: printf("Pulse cualquier tecla para salir\n");
! 102: getchar();
! 103: exit(1);
! 104: }
! 105: }
! 106:
! 107:
! 108: void Notificar(char *mensaje, unsigned char accion, unsigned char eco)
! 109: {
! 110: FILE *handle;
! 111: char fichero[MAX_LINE];
! 112:
! 113: /* nombre del fichero de notificaciones */
! 114: strcpy(fichero, "notificaciones.log");
! 115:
! 116: /* escribo la notificación en el fichero y si no es posible aborto el programa */
! 117: if((handle = fopen(fichero, "a")) != NULL)
! 118: {
! 119: if(accion != NO_ERROR || configuracion.nivelnotificaciones != ERRORS)
! 120: fprintf(handle, "%s%s\n", accion!= NO_ERROR ? "ERROR: ": "", mensaje);
! 121:
! 122: if(fclose(handle))
! 123: {
! 124: fprintf(handle, "El fichero '%s' no se ha podido cerrar\n", fichero);
! 125: printf("El fichero '%s' no se ha podido cerrar\n", fichero);
! 126: }
! 127: }
! 128: else
! 129: {
! 130: printf("El fichero '%s' no se ha podido abrir\n", fichero);
! 131: printf("Pulse cualquier tecla para salir\n");
! 132: getchar();
! 133: exit(1);
! 134: }
! 135:
! 136: /* escribo el error en la pantalla */
! 137: if(eco == ECO_SI) printf("%s\n", mensaje);
! 138:
! 139: /* acción en función del parámetro */
! 140: switch(accion)
! 141: {
! 142: case ERROR_SALIR:
! 143: printf("\n\nERROR GRAVE\nPulse cualquier tecla para salir\n");
! 144: getchar();
! 145: exit(1);
! 146: break;
! 147:
! 148: case ERROR_SEGUIR:
! 149: printf("\n\nERROR LEVE\nPulse cualquier tecla para continuar\n");
! 150: getchar();
! 151: break;
! 152:
! 153: case NO_ERROR:
! 154: break;
! 155: }
! 156: }
! 157:
! 158:
! 159: void NotificarConfiguracion()
! 160: {
! 161: FILE *handle;
! 162: char fichero[MAX_LINE];
! 163:
! 164: /* nombre del fichero de notificaciones */
! 165: strcpy(fichero, "notificaciones.log");
! 166:
! 167: /* escribo la notificación en el fichero y si no es posible aborto el programa */
! 168: if((handle = fopen(fichero, "a")) != NULL)
! 169: {
! 170: /* sin cabecera, fecha NO, completo SI, comentarios NO, separador " "); */
! 171: SalvarConfiguracionFichero(handle, "", NO, SI, NO, ' ');
! 172:
! 173: /* SalvarConfiguracion(handle); */
! 174:
! 175: if(fclose(handle))
! 176: {
! 177: fprintf(handle, "El fichero '%s' no se ha podido cerrar\n", fichero);
! 178: printf("El fichero '%s' no se ha podido cerrar\n", fichero);
! 179: }
! 180: }
! 181: else
! 182: {
! 183: printf("El fichero '%s' no se ha podido abrir\n", fichero);
! 184: printf("Pulse cualquier tecla para salir\n");
! 185: getchar();
! 186: exit(1);
! 187: }
! 188: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>