β’ Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ°ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ² tzset(). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ tzset(), Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠ΅Π΄ΠΊΠΎ.
β’ Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ qsort(). ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°, qsort() ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π²ΠΈΠ΄Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ.
β’ scandir() ΡΠΈΡΠ°Π΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ² struct dirent ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΠ»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² ΠΈ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ alphasort() ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ; scandir() ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΡΠΌΠΎ ΡΠ΅ΡΠ΅Π· qsort().
β’ Π€ΡΠ½ΠΊΡΠΈΡ bsearch() ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ qsort(). ΠΠ½Π° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π±ΡΡΡΡΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π΅, Π΅ΡΠ»ΠΈ ΡΠ΅Π½Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅Π½Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ . (ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ API Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΠΈΡΠ°Π½ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 14.4 Β«Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π²Β».)
β’ ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π³ΡΡΠΏΠΏ ΠΌΠΎΠ³ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ API Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅. ΠΠ°ΠΆΠ΄Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ Π²ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ID ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ/Π³ΡΡΠΏΠΏΡ.
β’ ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄Π»Ρ ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ stat(), isatty() ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠΎΠ±ΡΠΈΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π»ΠΈ ΠΎΡΠΊΡΡΡΡΠΉ ΡΠ°ΠΉΠ» ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ date, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΡΡΠΎΠΊΡ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π΅ Π΄Π»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
2. ΠΠΎΠ³Π΄Π° ΡΠ°ΠΉΠ» ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ΅Π², 'ls -l' ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ. GNU Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° ls.c ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅:
3043 /* ΠΡΠ΅ΠΌΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π΅Π΄Π°Π²Π½ΠΈΠΌ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ 6
3044 ΠΌΠ΅ΡΡΡΠ΅Π². Π ΠΡΠΈΠ³ΠΎΡΠΈΠ°Π½ΡΠΊΠΎΠΌ Π³ΠΎΠ΄Π΅ 365.2425 * 24 * 60 * 60 ==
3045 31556952 ΡΠ΅ΠΊΡΠ½Π΄ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ
3046 ΡΠ΅Π»ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π΄Π»Ρ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ.*/
3047 six_months_ago = current_time - 31556952 / 2;
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΠΎ Ρ Π½Π°ΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈ ΠΏΡΠΎΡΠ»ΡΡ ΠΌΠ΅ΡΡΡΠ΅Π². ΠΠ°ΠΊΠΎΠ²Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²?
3. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ touch, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°, ΠΈΠΌΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ
4. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ touch ΠΎΠΏΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
5. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ touch Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΎΠΏΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
6. Π£ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΡΠΉΡΠ΅ ch06-sortemp.c ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠΎΡΡΠΈΡΠΎΠ²Π°Π»Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΡ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ².
7. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ ch06-sortdir.c ΠΎΠΏΡΠΈΠΈ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Β«ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΎΠΏΡΠΈΡΒ», ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°Π»Π° ΡΠ°ΠΌΡΠΉ Π½Π΅Π΄Π°Π²Π½ΠΈΠΉ ΡΠ°ΠΉΠ», Π° ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ (ΡΠ°Π·ΠΌΠ΅ΡΡ, ΠΈΠ½Π΄Π΅ΠΊΡΡ) ΠΏΠΎΠΌΠ΅ΡΠ°Π»Π° Π²Π½Π°ΡΠ°Π»Π΅ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
8. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chown. ΠΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΊ:
chown ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ[:Π³ΡΡΠΏΠΏΠ°] ΡΠ°ΠΉΠ»Ρ ...
ΠΠ΄Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π³ΡΡΠΏΠΏΠ° ΡΠ²Π»ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π³ΡΡΠΏΠΏΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π³ΡΡΠΏΠΏΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΡΠΏΠΏΠ° Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°; Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ, ΠΎΠ½Π° ΠΎΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ GNU/Linux, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ root. ΠΠ΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ!
9. Π£ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΡΠΉΡΠ΅ ΡΠ²ΠΎΡ chown, ΡΡΠΎΠ±Ρ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΡ Π½Π°ΡΡΠ΄Ρ Ρ ΠΈΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.
10. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π³ΡΡΠΏΠΏΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ malloc().
11. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π²ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π±ΡΡΡΡΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΊΠ°ΠΊ ΠΏΠΎ ID, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ. ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠΉΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ»ΡΡΠ°Ρ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.
12. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π³ΡΡΠΏΠΏ.
13. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ stat, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ struct stat Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅, ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ: Π·Π½Π°ΡΠ΅Π½ΠΈΡ time_t Π² Π²ΠΈΠ΄Π΅ Π΄Π°Ρ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ uid_t ΠΈ gid_t Π² Π²ΠΈΠ΄Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΈΠΌΠ΅Π½ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΠ»ΠΎΠΊ. ΠΡΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠΎΠ»Π΅ st_mode ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ²Π΅Π»Π° Π±Ρ ls.
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ stat GNU Coreutils ΠΊΠ°ΠΊ ΠΏΠΎ ΠΈΡ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ.
ΠΠ»Π°Π²Π° 7
Π‘ΠΎΠ΅Π΄ΠΈΠ½ΡΡ Π²ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅: ls
ΠΠΎΠΌΠ°Π½Π΄Π° V7 ls Ρ ΠΎΡΠΎΡΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ Π²ΡΠ΅, ΡΡΠΎ ΠΌΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²ΠΈΠ΄Π΅Π»ΠΈ. ΠΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ API, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Unix: Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², Π²ΡΠ΅ΠΌΠ΅Π½Π° ΠΈ Π΄Π°ΡΡ, ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ.
7.1. ΠΠΏΡΠΈΠΈ V7 ls
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ls, V7 ls ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΉ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· Π½ΠΈΡ Π΄Π»Ρ V7 ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ls. ΠΡΠΈ ΠΎΠΏΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
-Π° ΠΡΠ²ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΠ΅Π· Π½Π΅Π΅ '.' ΠΈ '..' Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, V7 ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ Π»ΠΈΡΡ '.' ΠΈ '..', ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Ρ V1 ΠΏΠΎ V6 ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ°ΠΉΠ», ΠΈΠΌΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ ls.
-n ΠΠΌΠ΅ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ -t ΠΈΠ»ΠΈ -l Π²ΡΠ΅ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
-d ΠΠ»Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ°ΠΌΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π° Π½Π΅ ΠΎ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌ.
-f Β«ΠΠ°ΡΡΠ°Π²Π»ΡΠ΅ΡΒ» ΡΠΈΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»ΠΎΡΠ΅ ΠΈΠΌΡ. ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ -l, -r, -s, -t ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ -Π°. (ΠΡΠ° ΠΎΠΏΡΠΈΡ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.)
-g ΠΠ»Ρ 'ls -l' ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠΌΡ Π³ΡΡΠΏΠΏΡ.
-i ΠΡΠ²ΠΎΠ΄ΠΈΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π½ΡΠΌ Π»ΠΈΡΡΠΈΠ½Π³ΠΎΠΌ.
-l ΠΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Π² Π΄Π»ΠΈΠ½Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ V7 'ls -l' Π²ΡΠ²ΠΎΠ΄ΠΈΠ»Π° Π»ΠΈΡΡ ΠΈΠΌΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°, Π° Π½Π΅ ΠΈΠΌΠ΅Π½Π° Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΠΈ Π³ΡΡΠΏΠΏΡ Π²ΠΌΠ΅ΡΡΠ΅.
-r ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, Π±ΡΠ΄Ρ ΡΠΎ ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
-s ΠΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° Π² 512-Π±Π°ΠΉΡΠΎΠ²ΡΡ Π±Π»ΠΎΠΊΠ°Ρ . Π‘ΠΏΡΠ°Π²ΠΎΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° V7 ls(1) ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ (indirect blocks) β Π±Π»ΠΎΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² β ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π΅Π²Π΅ΡΠ½ΡΠΌ.
-t Π‘ΠΎΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠ½Π°ΡΠ°Π»Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠ΅.
-u Π‘ ΠΎΠΏΡΠΈΡΠΌΠΈ -t ΠΈ/ΠΈΠ»ΠΈ -l ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΡΡΡΠΏΠ° Π²ΠΌΠ΅ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ V7 ls ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ls Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ -Π° ΠΈ ΠΎΠΏΡΠΈΡ -l. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΡΡΠΊΠ°ΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠΎΡΠΊΠ°ΠΌΠΈ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π° -Π°, ΠΈ ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² Π΄Π»ΠΈΠ½Π½ΡΠΉ Π»ΠΈΡΡΠΈΠ½Π³ -l ΠΈΠΌΠ΅Π½Π° ΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°, ΠΈ Π³ΡΡΠΏΠΏΡ. ΠΠ° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ -g ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½ΠΈ Π³ΡΡΠΏΠΏΡ, Π° -o ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½ΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°. Π‘ΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Ρ GNU ls ΡΠ²ΡΡΠ΅ 50 ΠΎΠΏΡΠΈΠΉ!
7.2. ΠΠΎΠ΄ V7 ls
Π€Π°ΠΉΠ» /usr/src/cmd/ls.c Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ V7 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄. ΠΠ΅ΡΡ ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 425 ΡΡΡΠΎΠΊ.
1 /*
2 * ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ
3 */
4
5 #include <sys/param.h>
6 #include <sys/stat.h>
7 #include <sys/dir.h>
8 #include <stdio.h>
9
10 #define NFILES 1024
11 FILE *pwdf, *dirf;
12 char stdbuf[BUFSIZ];
13
14 struct lbuf { /* Π‘ΠΎΠ±ΠΈΡΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ */
15 union {
16 char lname[15];
17 char *namep;
18 } ln;
19 char ltype;
20 short lnum;