Cita: se tiene que multiplicar lo que queremos abrir por sizeof(char*)
el caso de sizeof(char *) se usa para crear arreglos de punteros. En tu caso debe ser sizeof(char), y apesar de que el tipo char ocupa
un byte para mi gusto es necesario ponerlo mas que nada por una forma mas ordenada de programacion( todos sabemos que 1 x cualquier_numero = cualquier_numero )
Cita: ¿estará mal abusar de la función exit()?
mmm la verdad nose pero viste que el abuso siempre es malo :)..... Lo que deberias cambiar es el argumento que le pasas a la funcion cuando hay un error; el 0(cero) se utiliza en caso de exito y distinto de cero si hubo un error. Para esto hay definidas dos macros: EXIT_SUCCESS y EXIT_FAILURE
Saludos