Je veux savoir la différence entre un descripteur de fichier et de pointeur de fichier.
Aussi, dans ce scénario serait d'utiliser l'un plutôt que l'autre?
Je veux savoir la différence entre un descripteur de fichier et de pointeur de fichier.
Aussi, dans ce scénario serait d'utiliser l'un plutôt que l'autre?
Un descripteur de fichier est un faible niveau entier "poignée" utilisé pour identifier un fichier ouvert (ou une douille, ou quoi que ce soit) au niveau du noyau, Linux et autres systèmes Unix.
Vous passez "nu" descripteurs de fichiers pour Unix appels, comme read()
, write()
et ainsi de suite.
Un FILE
pointeur est une bibliothèque C standard niveau de la construction, utilisé pour représenter un fichier. L' FILE
encapsule le descripteur de fichier, et ajoute de la mise en mémoire tampon et d'autres fonctionnalités pour rendre I/O plus facile.
Vous passez FILE
des pointeurs vers les fonctions C standard tels que fread()
et fwrite()
.
Une mémoire tampon (FILE *
) et l'autre ne l'est pas. Dans la pratique, vous souhaitez utiliser FILE *
presque toujours, quand vous lisez à partir d'un "vrai" fichier (ie. sur la route), sauf si vous savez ce que vous faites ou que votre fichier est en fait un socket ou alors..
Vous pouvez obtenir le descripteur de fichier de l' FILE *
l'aide fileno()
et vous pouvez ouvrir un tampon FILE *
à partir d'un descripteur de fichier à l'aide de fdopen()
Un descripteur de fichier est juste un entier qui vous obtenez à partir de la Posix' open()
appel. En utilisant le standard de C fopen()
, vous obtenez un FILE
struct dos. L' FILE
struct contient la ce descripteur de fichier, entre autres choses, telles que la fin de fichier et l'indicateur d'erreur, flux de position etc.
Donc à l'aide d' fopen()
vous donne une certaine quantité d'abstraction par rapport à l' open()
. En général, vous devriez être en utilisant fopen()
depuis que est plus portable et vous pouvez utiliser tous les autres types de fonctions en C qui utilise l' FILE
struct, ie fprintf()
et de la famille.
Il n'y a pas de problèmes de performances à l'aide de ou.
Souhaitez ajouter des points qui pourraient être utiles.
À PROPOS de FILE *
Je l'utilise de nombreuses fois pour les journaux de débogage. exemple,
FILE *fp;
fp = fopen("debug.txt","a");
fprintf(fp,"I have reached till this point");
fclose(fp);
À PROPOS de FILE DESCRIPTOR
Il est généralement utilisée pour l'IPC.
Donne un contrôle de bas niveau à des fichiers sur les systèmes *nix.(les périphériques,fichiers,sockets,etc), donc plus puissant que l' FILE *
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.