Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Příkaz lsof a obsah sloupce FD
3. dubna 2003, 00.00 | Minule jsme si prošli sloupce, ve kterých příkaz lsof vypisuje informace o otevřených kanálech. Odložili jsme ale na samostatný díl popis obsahu sloupce FD (a sloupce NAME), protože je příliš komplikovaný. Na sloupec FD se podrobně podíváme dnes.
Příkaz lsof a obsah sloupce FDMinule jsme si prošli sloupce, ve kterých příkaz lsof vypisuje informace o otevřených kanálech. Odložili jsme ale na samostatný díl popis obsahu sloupce FD (a sloupce NAME), protože je příliš komplikovaný. Na sloupec FD se podrobně podíváme dnes.
"FD" je zkratka za "File Descriptor" — pro obyčejné soubory zde je tedy číslo, jež identifikuje v rámci procesu kanál, přiřazený danému souboru. Programátoři budou vědět o co jde; pro neprogramátory si lze představit, že se prostě všechny otevřené soubory v rámci procesu sekvenčně číslují, a FD je právě toto číslo. Otevře-li některý proces jeden soubor vícekrát, budou se tedy právě tyto případy lišit číslem FD.
Pro kanály, jež nerepresentují soubory, je ve sloupci FD jiný údaj. Mimo jiné se zde můžeme setkat s následujícími zkratkami:
- cwd pro aktuální složku;
- pd pro nadřízenou ("parent") složku;
- rtd pro kořenovou složku;
- mem pro soubor, mapovaný do paměti (připomeňme si díly, věnované virtuální paměti — tam jsme si vysvětlili o co jde a jak to funguje);
- mmap pro zařízení, mapované do paměti;
- txt pro proveditelný program;
- ltx pro sdílenou knihovnu.
Ukažme si pár nejjednodušších příkladů:
1/# lsof
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kernel_ta 0 root cwd VDIR 14,12 4992 2 / (/dev/disk1s8)
...
kextd 51 root 0u VCHR 3,2 0t2688 36370052 /dev/null
kextd 51 root 1u VCHR 3,2 0t2688 36370052 /dev/null
kextd 51 root 2u VCHR 3,2 0t2688 36370052 /dev/null
...
Podíváme-li se ovšem na výpis programu lsof, uvidíme, že za základní identifikací kanálu ve sloupci FD často následují ještě upřesňující údaje. Prvním z nich je písmenko, jež ukazuje, jakým způsobem je kanál otevřen:
- r jen pro čtení;
- w jen pro zápis;
- u pro čtení i zápis.
Kromě toho zde může být mezera nebo pomlčka ('-'); ty znamenají, že režim není známý. Pomlčka nám navíc říká, že pro soubor existuje zámek, a za ní následuje další upřesnění typu uzamčení:
- N zámek NFS;
- r část souboru je uzamčena pro čtení;
- R celý soubor je uzamčen pro čtení;
- w část souboru je uzamčena pro zápis;
- W celý soubor je uzamčen pro zápis;
- u zámek pro čtení i zápis (ať již na část či na celý soubor);
- U neznámý zámek.
Samozřejmě, že na souboru může váznout zámků několik — v takovém případě lsof ohlásí pouze ten první, na který narazí.