fclose() en el lugar equivocado, y el header se agrega solo si el archivo es nuevo
Inicialización en el lugar equivocado