2017-07-31 5 views
0

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)

+2

mon 'readdir()' renvoie 'struct dirent *'. Je ne comprends pas votre question ... –

+0

La question est pourquoi nous avons besoin de la structure directe – Victor

+1

"* 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

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 ...