Pourquoi la routine readdir a-t-elle besoin de struct direct? p 184 K&R Pour quelle raison avons-nous besoin de la structure directe et ne pouvons pas seulement utiliser la structure struct? La définition dirent: p 180 K&R La définition directe: p.183 K&Rreaddir répertoire routine-local vs répertoire portable (p.184 K & R)
0
A
Répondre
2
Parce que K & RC est des années 70 (ouais bon vieux temps ...), et K & RC de la bibliothèque standard ne contient des choses comme readdir
pas struct dirent
, donc les programmeurs ont dû utiliser directement read
pour traiter un répertoire et utiliser le niveau bas struct direct
.
Le code que vous montrer est juste un exemple de la façon d'envelopper que le faible niveau io dans une fonction plus haut niveau readdir
- et si je comprends bien, il est ni la fonction readdir
currect, ni le struct dirent
courant ...
Donc méfiez-vous: J'ai aimé K & R au début des années 80, mais ont seulement utiliser ANSI C et plus tard ISO C pendant plus de 30 ans. Peut-être que vous devriez essayer de trouver un livre un peu plus récent pour apprendre C ...
mon 'readdir()' renvoie 'struct dirent *'. Je ne comprends pas votre question ... –
La question est pourquoi nous avons besoin de la structure directe – Victor
"* Pourquoi la routine readdir renvoie direct et non Dirent? *" Readdir() 'de K & R * * renvoie * un pointeur vers un' Dirent '. Il ne renvoie * pas * une structure directe. Ceci est évident dès la première capture d'écran que vous liez. Que dis-tu? (Voir aussi ici: https://stackoverflow.com/questions/11063717/kr-chapter-8-readdir-function) – alk