Чтение онлайн

на главную - закладки

Жанры

Linux программирование в примерах

Роббинс Арнольд

Шрифт:

 fsfilcnt_t f_ffree; /* Общее число свободных индексов */

 fsfilcnt_t f_favail; /* Число доступных индексов (≤f_files) */

 unsigned long int f_fsid; /* ID файловой системы */

 unsigned long int f_flag; /* Флаги: ST_RDONLY и/или ST_NOSUID */

 unsigned long int f_namemax; /* Максимальная длина имени файла */

};

Сведений, которые в ней содержатся, достаточно для написания

df
:

unsigned long int f_bsize

Размер

блока является предпочтительным размером для осуществления ввода/вывода. Файловая система пытается хранить по крайней мере
f_bsize
байтов стоящих данных в смежных секторах на диске. (Сектор является наименьшим количеством адресуемых данных на диске. Обычно дисковый сектор равен 512 байтам.)

unsigned long int f_frsize

Некоторые файловые системы (такие, как BSD Fast Filesystem) проводят различие между блоками и фрагментами блоков. Небольшие файлы, общий размер которых меньше размера блока, находятся в некотором числе фрагментов. Это позволяет избежать пустой потери дискового пространства (за счет допустимой цепы большей сложности кода ядра). Размер фрагмента выбирается во время создания файловой системы.

fsblkcnt_t f_blocks

Общее число блоков (в единицах

f_bsize
) в файловой системе.

fsblkcnt_t f_bfree

Общее число свободных блоков в файловой системе.

fsblkcnt_t f_bavail

Число блоков, которые действительно могут использоваться. Некоторые файловые системы резервируют часть блоков файловой системы для использования суперпользователем при заполнении файловой системы. Современные системы резервируют около 5 процентов, хотя это число может быть изменено администратором. (См. tune2fs(8) на системе GNU/Linux и tunefs(8) на системах Unix.)

fsfilcnt_t f_files

Общее число индексов («порядковых номеров файлов» на языке POSIX) в файловой системе. Это число обычно инициализируется и делается постоянным при создании файловой системы.

fsfilcnt_t f_ffree

Общее число свободных узлов.

fsfilcnt_t f_favail

Число индексов, которые действительно могут быть использованы. Некоторая часть индексов резервируются для суперпользователя, точно так же, как для блоков.

unsigned long int f_fsid

ID файловой системы. POSIX не определяет, что оно представляет, и это под Linux не используется.

unsigned long int f_flag

Флаги, дающие информацию о файловой системе. POSIX определяет два флага:

ST_RDONLY
для файловых систем только для чтения (таких, как CD-ROM) и
ST_NOSUID
, который запрещает использование битов setuid и setgid в исполняемых файлах. Системы GNU/Linux предусматривают дополнительные флаги: они перечислены в табл. 8.2.

Таблица 8.2. Значения GLIBC для

f_flag

Флаг POSIX Значение
ST_MANDLOCK
Осуществляет принудительное блокирование (см. раздел 14.2).
ST_NOATIME
Не
обновлять при каждом доступе время доступа
ST_NODEV
Запрещает доступ через файлы устройств
ST_NODIRATIME
Не обновлять поле времени доступе каталогов
ST_NOEXEC
Запрещает исполнение двоичных файлов
ST_NOSUID
Файловая система запрещает использование битов setuid и setgid.
ST_RDONLY
Файловая система только для чтения.
ST_SYNCHRONOUS
Любая запись осуществляется синхронно (см. раздел 4.6.3).

unsigned long int f_namemax

Максимальная длина имени файла. Это относится к каждому отдельному компоненту в имени пути; другими словами, максимальная длина для элемента каталога

Типы

fsblkcnt_t
и
fsfilcnt_t
определены в
<sys/types.h>
. Они обычно являются
unsigned long
, но на современных системах они могут быть даже 64-разрядными, поскольку диски стали очень большими. Следующая программа,
ch08-statvfs.c
, показывает, как использовать
statvfs
:

1 /* ch08-statvfs.с --- демонстрация statvfs */

2

3 /* ЗАМЕЧАНИЕ: специфично для GNU/Linux! */

4

5 #include <stdio.h>

6 #include <errno.h>

7 #include <mntent.h> /* для getmntent, et al. */

8 #include <unistd.h> /* для getopt */

9 #include <sys/types.h>

10 #include <sys/statvfs.h>

11

12 void process(const char *filename);

13 void do_statvfs(const struct mntent *fs);

14

15 int errors = 0;

16 char *myname;

17

18 /* main --- обработка опций */

19

20 int main(int argc, char **argv)

21 {

22 int c;

23 char *file = "/etc/mtab"; /* файл для чтения по умолчанию */

24

25 myname = argv[0];

26 while ((c = getopt(argc, argv, "f:")) != -1) {

Поделиться:
Популярные книги

Я снова граф. Книга XI

Дрейк Сириус
11. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я снова граф. Книга XI

Князь

Мазин Александр Владимирович
3. Варяг
Фантастика:
альтернативная история
9.15
рейтинг книги
Князь

Старый, но крепкий

Крынов Макс
1. Культивация без насилия
Фантастика:
рпг
уся
попаданцы
5.00
рейтинг книги
Старый, но крепкий

Кодекс Крови. Книга V

Борзых М.
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга V

Кодекс Охотника. Книга XXXIII

Винокуров Юрий
33. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIII

Волкодав

Семёнова Мария Васильевна
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
9.46
рейтинг книги
Волкодав

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Первый среди равных. Книга III

Бор Жорж
3. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
6.00
рейтинг книги
Первый среди равных. Книга III

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Товарищ "Чума" 2

lanpirot
2. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 2

Александри В. Стихотворения. Эминеску М. Стихотворения. Кошбук Д. Стихотворения. Караджале И.-Л. Потерянное письмо. Рассказы. Славич И. Счастливая мельница

Эминеску Михай
126. Библиотека всемирной литературы
Поэзия:
поэзия
5.00
рейтинг книги
Александри В. Стихотворения. Эминеску М. Стихотворения. Кошбук Д. Стихотворения. Караджале И.-Л. Потерянное письмо. Рассказы. Славич И. Счастливая мельница

Бояръ-Аниме. Газлайтер. Том 35

Володин Григорий Григорьевич
35. История Телепата
Фантастика:
аниме
боевая фантастика
фэнтези
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 35

Ненаглядная жена его светлости

Зика Натаэль
Любовные романы:
любовно-фантастические романы
6.23
рейтинг книги
Ненаглядная жена его светлости