Manejo de errores
Es muy importante detectar a tiempo que ha habido un error cuando se ejecuta nuestro programa y en ese momento terminar la ejecución para evitar qué seguir con ella nos lleve a errores más graves que puedan "colgar" la máquina, por ejemplo.
Es recomendable que la salida del programa vaya a stdout (o salida estándar) y los errores vayan a stderr. Por ejemplo:
fprintf(stdout, "La palabra es aceptada\n”);
fprintf(stderr, "Los argumentos de entrada son invalidos\n");
En la lectura de ficheros
Cuando se accede a un fichero para leerlo nos pueden ocurrir los siguientes casos que debemos evitar;
Se intenta leer un fichero que no existe y en vez de dar error y salir del programa se continúa y al final el programa termina fallando.
Nuestro programa no detecta el final de fichero y se cuelga. Con las funciones de detección de final de fichero y con las funciones de lectura de fichero debemos poder detectar cuando terminamos de leer un fichero.
Cuando se está leyendo un fichero no se comprueba que las cosas que se desean leer estén como se espera y esto puede producir que nuestro programa "cuelgue" la máquina. Cuando se está leyendo de un fichero y rellenando con lo que lee unos datos se debe comprobar que se lee lo deseado para evitar problemas.
En el paso de argumentos al main
Si nuestro programa puede recibir parámetros a la hora de ejecutarse y estos no son introducidos, lo más lógico es, o bien pedirlos a continuación, o dar un error diciendo cual es la sintaxis de lo que se debería haber introducido - Y para completar podría el programa mostrar una ayuda de los parámetros que acepta y su uso a través del parámetro -? o -h tras el nombre del programa.
Si el programa espera argumentos en línea de comandos, hay que asegurarse de que el usuario los ha introducido comprobando el valor de argc.
Trabajo con memoria dinámica
Lo primero que tenemos que tener en cuenta es que tenemos en nuestro fichero los includes:
y . Siempre que usemos una variable definida como puntero hay que reservar memoria, el siguiente ejemplo sería erróneo ya que no se le da memoria en ningún sitió al puntero a char:
char *cadena;
y después:
scanf("%s", cadena);
Se tiene que reservar la memoria para la cadena de caracteres utilizada.
Si el programa tiene que parar la ejecución por un error, se debe liberar la memoria reservada hasta el momento.
Trabajo con includes (.h);
. No se puede poner ningún include del tipo
Indicando el path completo al archivo: #include “a:\mifichero.h” Se pone de forma relativa: #include “mifichero.h”
De un archivo de código: #include “mifichero.c” Nunca un .c en un include.
De un archivo nuestro, entre "<" y ">": #include
Se pone con comillas: #include “mifichero.h”
Siendo mifíchero.h o mifíchero.c ficheros creados por nosotros. Lógicamente no nos referimos a stdlib.h o stdio.h, u otros includes del sistema.
No olvidar poner ningún include, es típico olvidar
, (sin estos includes el programa puede dejar la maquina “colgada” a la hora de ejecutarse). Para saber si nos olvidamos poner algún include hay que configurar el Turbo C para que nos avise con un “warning” de ello. Lo más cómodo y recomendable es activar en las opciones del compilador Turbo C (o el que utilicemos) para que avise con un mensaje en todos los casos que nos ofrece. Cuando creamos nuestro fichero de cabecera (.h) tenemos que tener las siguientes instrucciones en éste:
#ifndef__IDENTIFICADOR
#define__IDENTIFICADOR
(...)
#endif
4 comentarios:
Cool blog, interesting information... Keep it UP Dosage of vitamins a and d http://www.mitsubishi-carisma-9.info/Bmw-car-parts.html video monitor security 2006 honda odyssey price how to run a tennis tournament Testosterone enhancing vitamins Website templates unlimited Comparing wireless plans oh Debt relief analyzer Cruise line norwegian wedding free hairy mature pics How do i take lexapro ampm with food Vitamin that is good for your skin Gangbang jansgalleries com groupsex briana banks For sale hp750c plotter Returned cannon powershot s50 digital camera cost+of+tattoo+removal
I have been looking for sites like this for a long time. Thank you! film editing classes
ESTAS PRESIOSO BB TE QUIERO ME LLAMO MONICA PATRICIA MI MNS ES MONIKM03@HOTMAIL.COM
Looking for information and found it at this great site... Chinon domaine chartreuse Mlb backpacks florida timeshare celexa Free holdem charts motorcycle insurance Oem parts for a jeep grand cherokee Accuvue oasis contact lens Broadband+phone+service+online bmw Carolina mortgage second south propecia loss Ferrari dino 246 gt Current accounting topics Account merchant provider raleigh service
Publicar un comentario en la entrada