GNU/Linux >> Znalost Linux >  >> Linux

osmičkový výpis adresáře

Každý typ souborového systému ukládá adresáře jiným způsobem. Existuje mnoho různých typů souborových systémů s různými charakteristikami – dobré pro vysokou propustnost, dobré pro vysokou souběžnost, dobré pro prostředí s omezenou pamětí, různé kompromisy mezi výkonem čtení a zápisu, mezi složitostí a stabilitou atd. Vaše kniha popisuje souborový systém používaný na počátku Unixové systémy. Moderní systémy podporují mnoho různých souborových systémů.

Velmi rané verze Unixu měly spoustu manipulace se souborovým systémem mimo jádro. Například mkdir a rmdir fungovalo přímou úpravou některých datových struktur souborového systému. To bylo rychle nahrazeno jednotným rozhraním pro přístup k adresářům, opendir /readdir /closedir rodina, která aplikacím umožňovala manipulovat s adresáři, aniž by musely vědět, jak byly implementovány pod kapotou.

Důvod, proč nemůžete číst obsah adresáře pod Linuxem, není ten, že musí být skryt, ale protože funkce existují pouze tehdy, jsou-li implementovány, a tato funkce je zbytečná a stojí za to. Vzhledem k tomu, že formát závisí na souborovém systému, je to poněkud zbytečná funkce:program nemůže znát formát toho, co čte. Ani to není úplně triviální funkce, kterou by bylo možné podporovat:některé souborové systémy organizují adresáře způsoby, které nejsou jen proudem bajtů, například mohou být organizovány jako B-strom. Některé varianty Unixu stále umožňují aplikacím číst obsah adresáře přímo kvůli zpětné kompatibilitě, ale Linux tuto funkci nemá (a pokud si vzpomínám, nikdy ji neměl – byla to již zastaralá funkce na počátku 90. let).


Ano, ale:

  • moderní systémy ukládají názvy souborů jinak. V původním Unixu byly názvy omezeny na 14 znaků s 2 bajty pro inode.
  • Rozhraní k adresáři je přes funkce opendir , readdir , closedir spíše než open , read , close odrážet změnu v organizaci.
  • protože nikdo prakticky nepotřebuje číst 16bajtové položky adresáře, návrháři vynechali možnost číst nezpracované soubory adresářů z programů, které jsou určeny ke čtení souborů .

Další čtení:

  • Jak na to:Programování v jazyce C s adresáři v systému Linux
  • otázka na opendir, readdir atd., vlákno Usenet v roce 1990 pojednávající o moderně implementace opendir atd.

Linux
  1. Použijte „pushd“ a „popd“ pro efektivní navigaci souborovým systémem v Linuxu

  2. Linux – spouštění versus čtení bit. Jak fungují adresářová oprávnění v Linuxu?

  3. Příklady příkazů OD pro Linux (osmičkový výpis)

  1. Jak vytvořit dočasný adresář v C++?

  2. Oprava souborového systému Ubuntu VM pouze pro čtení?

  3. Adresář - /sys v linuxu

  1. Rozumět Ifs?

  2. Zjistěte, jakého souborového systému je soubor nebo adresář součástí?

  3. Problém souborového systému pouze pro čtení?