void frameInfoData(int i,int j,int k)
{
    FILE *frameData;
    frameData=fopen("frame_Data.txt","a");
    fprintf(frameData,"Packet number is %d      Packet L %d         Packet Header L %d      ",i,j,k);
    fprintf(frameData,"\n");

}


上面是我写文件的代码。我的数据大约是3170行。当我运行该程序时,它给我一个分段错误并转储了内核。但是,当我控制写入并写入3169行时,它将非常容易且正确地进行写入。

我是C编程的新手,请在这种情况下帮助我。

提前致谢

最佳答案

加:

#include <errno.h>
#include <stdio.h>

//other code here

if (frameData == NULL) {
  perror("fopen()");
  return;
}


这应该可以开始调试...

返回前请不要忘记fclose(frameData),这也可能在第二次调用该函数时导致错误(文件已打开)。

关于c - 写入文件时C中的段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24630296/

10-09 08:36