Ahora bien, lo que no sé si es correcto, es la forma en que yo borro al archivo ya que tengo que hacer una llamada al sistema.
Código
/** Programa para manipular estructuras junto con archivos tipo binarios. El menu contiene un AB para el arc hivo no indexado. **/ /* Autor: cbug Fecha: 11 de Julio de 2010 */ #include <stdio.h> #include <stdlib.h> #include <string.h> /** DEFINICION DE TIPOS DE DATOS **/ typedef struct Fecha{ int dia; int mes; int anio; }stFecha; typedef struct Persona{ char Nombre[25]; stFecha Nacimiento; }stPersona; /**********************************/ /** PROTOTIPOS DE FUNCIONES **/ void Ingreso(stPersona *P); void Muestra(stPersona); void Archivo_Escribe(stPersona *P); long Archivo_Busca_Persona(char *nombre); void Archivo_Elimina(void); void Archivo_Muestra(void); void Archivo_Borrar(void); stPersona Persona_Blanco(void); void Menu(void); void ClrBuffer(void); /*****************************/ int main(void) { //Variables Locales int _opt; stPersona _persona; Menu(); ClrBuffer(); while(_opt != 0) { switch(_opt) { case 1: Ingreso(&_persona); break; case 2: Muestra(_persona); break; case 3: Archivo_Escribe(&_persona); break; case 4: Archivo_Muestra(); break; case 5: Archivo_Elimina(); break; case 6: Archivo_Borrar(); break; default: break; } Menu(); ClrBuffer(); } return 0; } void ClrBuffer(void) { } void Menu(void) { } void Ingreso(stPersona *P) { ClrBuffer(); ClrBuffer(); ClrBuffer(); } void Muestra(stPersona P) { } stPersona Persona_Blanco(void) { stPersona aux; aux.Nacimiento.dia = 0; aux.Nacimiento.mes = 0; aux.Nacimiento.año = 0; return aux; } void Archivo_Escribe(stPersona *P) { FILE *pf; if(pf == NULL) } void Archivo_Muestra(void) { FILE *pf; stPersona *_pbuffer = NULL; if(pf == NULL) else { { if(_pbuffer) Muestra(*_pbuffer); } } } long Archivo_Busca_Persona(char *nombre) { FILE *pf; stPersona *_pbuffer = NULL; int counter = 0; if(pf == NULL) else { { return counter; counter++; } return -1; } } void Archivo_Elimina(void) { char Nombre[25]; long Pos; stPersona P; FILE *pf; Pos = Archivo_Busca_Persona(Nombre); if(Pos > -1) { P = Persona_Blanco(); } else } void Archivo_Borrar(void) { }