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>