Quelle est la différence entre fseek, lseek, seekg, seekp?
J'ai été invité par un intervieweur comment pourrais-je mettre en œuvre tail
(oui, l'un dans le shell linux). Ma réponse a été, d'abord chercher à la fin du fichier, puis de lire les caractères un par un à l'avant, si rencontre un \n
signifie une ligne vers le bas, bla bla bla. Je suppose que ma réponse est correcte.
Puis j'ai trouvé ce problème, qui cherchent dois-je utiliser pour mettre en œuvre tail
? Je pensais que je peux tout simplement utiliser seekg
(C++?), mais on m'a dit que je devrais utiliser lseek
(appel système linux?).
Donc y compris fseek
(en C ANSI chose?), qui dois-je utiliser pour mettre en œuvre tail
?
Et s'il y a une grosse différence entre eux?
source d'informationauteur Alcott
Vous devez vous connecter pour publier un commentaire.
Utilisation
seekg
lors de l'utilisation du C++ IOstreams de la bibliothèque.seekp
n'est d'aucune utilité ici, puisqu'il définit le mettre pointeur.Utilisation
fseek
lors de l'utilisation de la C de la bibliothèque stdio. Utilisationlseek
lors de l'utilisation de bas niveau POSIX descripteur de fichier I/O.La différence entre les différents chercher fonctions est le type de fichier/flux objets sur lesquels ils opèrent. Sur Linux,
seekg
etfseek
sont probablement mises en œuvre en termes delseek
.