在C中写入文件的问题

我正在尝试将一些信息写入C中的文件,之前从未遇到过问题。 但是,现在在将变量的内容写入文件时似乎会中断。 这就是我所拥有的。

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); 

这条线为什么会崩溃? 它最终出现在dbghook.c中的_debugger_hook_dummy = 0;

当打印count到文件时发生崩溃,但如果我取出该打印,它将在打印最后一个语句时崩溃。 第一个似乎打印很好,但..

当我打印错误时,我得到“太多打开的文件”

第一步:更换

 f = fopen(路径,模式);

 f = fopen(路径,模式);
 if(f == NULL){
     perror(路径);
    退出(EXIT_FAILURE);
 }

至于MSVS2008,一切正常。 当然,’for’循环因为使用全局变量和定义而被评论。

首先,你应该尝试做类似的事情

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

看看会发生什么。