fwrite écrire un entier

Je suis en train d'écrire un mot dans un fichier à l'aide de cette fonction:

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

Mais j'obtiens une erreur de segmentation à chaque fois qu'il essaie d'exécuter le fwrite. J'ai regardé la page de man pour fwrite(3) et je me sens comme je l'ai utilisé correctement, il ya quelque chose que je suis absent?

Quelle plate-forme/compilateur? Les problèmes d'alignement peut importe.
Quelle plate-forme/compilateur? Les problèmes d'alignement peut importe.<br> Pouvez-vous écrire quoi que ce soit d'autre dans le fichier correctement? Je soupçonne que votre fichier ne peut être ouvert correctement.
assurez-vous juste out n'est pas NULL, le reste est ok.
quand je l'ai testé ce code, je n'y pensais pas et décidé d'écrire un fichier de test appelée "test", qui était également le nom de l'exécutable de mon programme de test, qui m'a donné une erreur de segmentation. >.< de Sorte que la fonction elle-même est très bien, assurez-vous juste ce que vous êtes de passage dans le elle est valide, N 1,1 et d'autres ont suggéré.

OriginalL'auteur user149100 | 2010-04-23