Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² QNX/Neutrino 2. Руководство ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² QNX Realtime PlatformΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 61

Автор Π ΠΎΠ± ΠšΡ‘Ρ€Ρ‚Π΅Π½

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ наряду со «стандартным» OCB ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΠΊΠΎΠΉΠ½Ρ‹ β€” OCB ΠΌΠΎΠΆΠ½ΠΎ Β«Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΒ». ΠœΡ‹ обсудим это Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΒ».

Π­Ρ‚ΠΎ странноС ΠΏΠΎΠ»Π΅ offset

ПолС offset, скаТСм Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π² <sys/iofunc.h>, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ. Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Ρƒ вас Π·Π°Π΄Π°Π½Ρ‹ Ρ„Π»Π°Π³ΠΈ прСпроцСссора, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡˆΠ΅ΡΡ‚ΠΈ (!) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… раскладок поля offset. Но Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡ‚Π΅ΡΡŒ особо ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚ΡŒ смысл Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° случая, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ 64-разрядныС смСщСния ΠΈΠ»ΠΈ Π½Π΅Ρ‚:

β€’ Π΅ΡΠ»ΠΈ Π΄Π°, Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ offset 64-разрядноС;

β€’ Π΅ΡΠ»ΠΈ Π½Π΅Ρ‚ (Ρƒ вас 32-разрядныС Ρ†Π΅Π»Ρ‹Π΅), Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ offset β€” это младшиС 32 Π±ΠΈΡ‚Π°; ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ 32 Π±ΠΈΡ‚Π° хранятся Π² ΠΏΠΎΠ»Π΅ offset_hi.

Для Π½Π°ΡˆΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ, Ссли Ρ€Π΅Ρ‡ΡŒ Π½Π΅ ΠΈΠ΄Π΅Ρ‚ ΠΎ явном противопоставлСнии 32- ΠΈ 64-разрядных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС смСщСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ 64-разрядными (Ρ‚ΠΈΠΏΠ° off_t), ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с 64-разрядными числами.

Атрибутная запись iofunc_attr_t

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ OCB Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ структура Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ дСскриптору Ρ„Π°ΠΉΠ»Π°, атрибутная запись являСтся структурой Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ устройству. Π’Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ стандартный OCB Ρ‚ΠΈΠΏΠ° iofunc_ocb_t ΠΈΠΌΠ΅Π΅Ρ‚ элСмСнт, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ attr, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΡƒΡŽ запись. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ OCB Π±Ρ‹Π» доступ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± устройствС. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΡƒΡŽ запись (взято ΠΈΠ· <sys/iofunc.h>):

typedef struct _iofunc_attr {

 IOFUNC_MOUNT_T           *mount;

 uint32_t                 flags;

 int32_t                  lock_tid;

 uint16_t                 lock_count;

 uint16_t                 count;

 uint16_t                 rcount;

 uint16_t                 wcount;

 uint16_t                 rlocks;

 uint16_t                 wlocks;

 struct _iofunc_mmap_list *mmap_list;

 struct _iofunc_lock_list *lock_list;

 void                     *list;

 uint32_t                 list_size;

 Π‘М_ΠΠ˜Π–Π•!!!               nbytes;

 Π‘М_ΠΠ˜Π–Π•!!!               inode;

 uid_t                    uid;

 gid_t                    gid;

 time_t                   mtime;

 time_t                   atime;

 time_t                   ctime;

 mode_t                   mode;

 nlink_t                  nlink;

 dev_t                    rdev;

} iofunc_attr_t;

Π£ ΠΏΠΎΠ»Π΅ΠΉ nbytes ΠΈ inode Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² условной компиляции, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ поля offset Π² OCB (см. ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„ Β«Π­Ρ‚ΠΎ странноС ΠΏΠΎΠ»Π΅ offsetΒ»).

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΠΎΠΉ записи ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ POSIX.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим поля Π² ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ порядкС:

mount Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ запись Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования (Ρ‚ΠΈΠΏΠ° iofunc_mount_t). Он примСняСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΡƒΡŽ запись, входящСму Π² состав Π² OCB, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ здСсь это ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ NULL β€” Π² этом случаС для записи Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ установки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (см. Π½ΠΈΠΆΠ΅ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„ Β«Π—Π°ΠΏΠΈΡΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования iofunc_mount_tΒ»). Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ упомянуто, запись Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования привязываСтся ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΠΎΠΉ записи Β«Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽΒ» Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ вашСго администратора рСсурсов. flags Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ„Π»Π°Π³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ состояниС Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΠΎΠΉ записи. ΠœΡ‹ вскорС ΠΊ Π½ΠΈΠΌ вСрнСмся. lock_tid Для прСдупрСТдСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ синхронизации доступ мноТСства ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΠΎΠΉ записи Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ. ПолС lock_tid содСрТит ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΡ‚ΠΎΠΊΠ° (thread ID), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ данная атрибутная запись Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π° Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚. lock_count Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΡƒΡŽ запись. НулСвоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ структура Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π°. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, большСС нуля (Π΅Π΄ΠΈΠ½ΠΈΡ†Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΡƒΡŽ структуру ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². count Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° число OCB, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ эту Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΡƒΡŽ запись. НапримСр, Ссли Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΅ΡΡ‚ΡŒ OCB, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ β€” Π΄Ρ€ΡƒΠ³ΠΎΠΉ OCB, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись, ΠΈ ΠΎΠ±Π° эти OCB ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΡƒΡŽ запись, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ count для Π½Π΅Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ 2. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ рСсурс ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ двумя ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ. rcount Число Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ для count, rcount Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ рСсурс ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ двумя ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ. wcount Число писатСлСй. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ для count, wcount Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ рСсурс ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. rlocks ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ число OCB, Π½Π°Π»ΠΎΠΆΠΈΠ²ΡˆΠΈΡ… Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ рСсурс Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого поля Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΏΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ Π½Π΅Ρ‚, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎ записи. wlocks Аналогично rlocks, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΏΠΎ записи. mmap_list Для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ использования POSIX-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ iofunc_mmap_default(). lock_list Для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ использования POSIX-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ iofunc_lock_default(). list Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ. list_size Π Π°Π·ΠΌΠ΅Ρ€ области, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ ΠΏΠΎΠ»Π΅ list. nbytes Π Π°Π·ΠΌΠ΅Ρ€ рСсурса Π² Π±Π°ΠΉΡ‚Π°Ρ…. НапримСр, Ссли рСсурс описываСт ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΈ этот Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 7756 Π±Π°ΠΉΡ‚, Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ nbytes Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 7756. inode Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ рСсурса; ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля inode Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½ΡƒΠ»ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ». uid Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ рСсурса. gid Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ рСсурса. mtime ВрСмя послСднСй ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡΡ‚Π°Π²ΡˆΠ΅Π΅ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ вслСдствиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ клиСнтской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ write(). atime ВрСмя послСднСго доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡΡ‚Π°Π²ΡˆΠ΅Π΅ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ вслСдствиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ клиСнтской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ read(), Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠ΅ΠΉ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ количСство ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚. ctime ВрСмя послСднСго измСнСния Ρ„Π°ΠΉΠ»Π°, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡΡ‚Π°Π²ΡˆΠ΅Π΅ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ вслСдствиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ клиСнтских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ write(), chown() ΠΈΠ»ΠΈ chmod(). mode Π Π΅ΠΆΠΈΠΌ доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ стандартныС значСния S_* ΠΈΠ· <sys/stat.h> (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, S_IFCHR), ΠΈΠ»ΠΈ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ значСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0664), ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Ρ€Π΅ΠΆΠΈΠΌ доступа для Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (owner), Π³Ρ€ΡƒΠΏΠΏΡ‹ (group) ΠΈ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… (other). nlink Число связСй (Π»ΠΈΠ½ΠΊΠΎΠ²) Ρ„Π°ΠΉΠ»Π°, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ клиСнтским Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ stat(). rdev Для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… устройств это ΠΏΠΎΠ»Π΅ состоит ΠΈΠ· ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ (major) ΠΈ младшСго (minor) ΠΊΠΎΠ΄ΠΎΠ² устройства (10 ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π±ΠΈΡ‚ β€” младший ΠΊΠΎΠ΄, ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ 6 Π±ΠΈΡ‚ β€” ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ). Для устройств Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° это ΠΏΠΎΠ»Π΅ содСрТит Π½ΠΎΠΌΠ΅Ρ€ устройства (подробности см. Π½ΠΈΠΆΠ΅ Π² ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅ «О Π½ΠΎΠΌΠ΅Ρ€Π°Ρ… устройств, индСксных дСскрипторах ΠΈ нашСм Π΄Ρ€ΡƒΠ³Π΅ rdevΒ»).

Как ΠΈ Π² случаС с OCB, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Β«ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽΒ» Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΡƒΡŽ запись вашими собствСнными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ β€” см. Ρ€Π°Π·Π΄Π΅Π» Β«Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΒ».