Ogni intestazione standard ha una specifica per ciò che espone o può esporre. dirent.h
espone struct dirent
, DIR
, e le relative funzioni, e riserva i nomi che iniziano con d_
. Alcune intestazioni sono anche consentite ma non obbligatorie per esporre cose esposte da certe altre intestazioni; dirent.h
non è uno di questi. Quindi includendo indirettamente limits.h
sarebbe una violazione dello spazio dei nomi e interromperebbe i programmi conformi che presuppongono di poter utilizzare nomi che limits.h
esporrebbe per i propri identificatori.
Perché la mappatura MAP_GROWSDOWN non cresce?