Hola! es como dice satu si vas a usar un char pone 's'.. Ademas despues de actualizar ese dato, antes de volver a escribir en el archivo tenes q volver a posicionar el cursor, sino estarias guardando mal
Para no llamar a la funcion buscapersona() dos veces te conviene almacenar en una variable lo q retorna, y usar ese dato en los fseek
Saludos
Código (c) [Seleccionar]
FILE *archivo;
struct personas persona;
archivo=fopen("personas.txt", "rb+");
fseek(archivo, sizeof(struct personas)*(buscarpersona(archivo, codigo)-1), 0);
//La funcion buscar persona me devuelve el registro buscado, resto uno para posicionarme y despues "borrar"
fread(&persona, sizeof(struct personas), 1, archivo);
strcpy(persona.borrado, "s");
fseek(archivo, sizeof(struct personas)*(buscarpersona(archivo, codigo)-1), 0); /* vuelvo a posicionar el cursor correctamente */
fwrite(&persona, sizeof(struct personas), 1, archivo); // despues guardo
fclose(archivo);
Para no llamar a la funcion buscapersona() dos veces te conviene almacenar en una variable lo q retorna, y usar ese dato en los fseek
Saludos