Il y a quatre raisons principales pour utiliser fopen au lieu de l'ouvrir.
-
fopen
vous offre tampon IO qui peut inverser beaucoup plus rapidement que ce que vous faites avec open
.
-
fopen
ne de fin de ligne traduction si le fichier n'est pas ouvert en mode binaire, qui peut être très utile si votre programme est jamais porté à un non-environnement Unix.
- Un
FILE *
vous donne la possibilité d'utiliser fscanf
et d'autres fonctions de stdio.
- Votre code peut-être un jour besoin d'être porté à une autre plate-forme que prend uniquement en charge la norme ANSI C et ne prend pas en charge l'
open
fonction.
Dans mon opinion, la fin de ligne traduction plus souvent est dans votre manière de vous aide à, et de l'analyse de fscanf est si faible que vous finissent inévitablement par le jeter en faveur de quelque chose de plus utile.
Et la plupart des plates-formes qui prennent en charge C ont un open
fonction.
Ce qui laisse la question de mise en mémoire tampon. Dans les endroits où vous êtes principalement de la lecture ou de l'écriture d'un fichier de façon séquentielle, la mise en mémoire tampon de soutien est très utile et une grande amélioration de la vitesse. Mais elle peut conduire à des problèmes intéressants, dans lesquels les données ne se retrouvent pas dans le fichier lorsque vous prévoyez d'être là. Vous devez penser à l' fclose
ou fflush
aux moments appropriés.
Si vous êtes en train de faire cherche, l'utilité de la mise en mémoire tampon descend rapidement.
Bien sûr, mon parti pris est que j'ai tendance à travailler avec des sockets beaucoup, et il y a le fait que vous voulez vraiment faire de la non-bloquant IO ( FILE *
totalement ne parvient pas à soutenir en aucune façon raisonnable) sans mise en mémoire tampon à tous et ont souvent complexe l'analyse des exigences vraiment la couleur de mes perceptions.