fwrite写一个整数

use*_*100 4 c fwrite segmentation-fault

我正在尝试使用此函数将文字写入文件:

extern void write_int(FILE * out, int num) {
   fwrite(&num,sizeof(int),1, out);
   if(ferror(out)){
      perror(__func__);
      exit(EXIT_FAILURE);
   }
}
Run Code Online (Sandbox Code Playgroud)

但是每当它试图运行fwrite时我都会遇到分段错误.我查看了fwrite(3)的手册页,我觉得我正确使用它,有什么我缺少的吗?

tyl*_*erl 7

试试这个:

void write_int(FILE * out, int num) {
   if (NULL==out) {
       fprintf(stderr, "I bet you saw THAT coming.\n");
       exit(EXIT_FAILURE);
   }
   fwrite(&num,sizeof(int),1, out);
   if(ferror(out)){
      perror(__func__);
      exit(EXIT_FAILURE);
   }
}
Run Code Online (Sandbox Code Playgroud)

为什么你的原始功能extern