Problema con escribir para archivar en C

Estoy tratando de escribir algo de información en un archivo en C y nunca antes había tenido un problema. Sin embargo, ahora parece romperse al escribir el contenido de una variable en un archivo. Esto es lo que tengo.

int i, count = 0; FILE *f; int _x, _y, _z, _x2, _y2, _z2; for (i = 0; i < HEIGHT * WIDTH*3; i+= 3) { if (buffer1[i/3] < MAGIC_VALUE) { count++; } if (buffer2[i/3] < MAGIC_VALUE) { count++; } } printf("Count = %d\n", count); // prints correctly... f = fopen("file.abc", "w"); fprintf(f, "lots\n of\n text\n"); fprintf(f, "count: %d\ntext \ntext y\ntext text text", count); // crashes here fprintf(f, "\nend"); fclose(f); 

¿Por qué esta línea se estrella? Termina en dbghook.c en la línea que dice _debugger_hook_dummy = 0;

El locking se produce cuando se imprime el count en el archivo, pero si saco esa impresión, se bloqueará cuando se imprima la última statement. El primero parece estar imprimiendo bien, aunque …

Cuando imprimo el error, aparece “Demasiados archivos abiertos”

1er paso: reemplazar

 f = fopen (camino, modo);

con

 f = fopen (camino, modo);
 if (f == NULL) {
     perror (camino);
     exit (EXIT_FAILURE);
 }

En cuanto a MSVS2008, todo funciona bien. Por supuesto, el bucle ‘for’ debía ser comentado ya que utiliza variables globales y define.

Primero, debes tratar de hacer algo como

 #include  void main() { int count = 0; FILE *f; f = fopen("file.abc", "w"); fprintf(f, "count: %d\n", count); fclose(f); } 

y mira lo que pasa.