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

на главную

Жанры

Linux программирование в примерах
Шрифт:

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) {

27 switch (c) {

28 case 'f':

29 file = optarg;

30 break;

31 default:

32 fprintf(stderr, "usage: %s [-f fstab-file]\n", argv[0]);

33 exit(1);

34 }

35 }

36

37 process(file);

38 return (errors != 0);

39 }

40

41 /* process --- чтение структур struct mntent из файла */

42

43 void process(const char *filename)

44 {

45 FILE* fp;

46 struct mntent *fs;

47

48 fp = setmntent(filename, "r"); /* только для чтения */

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

Том 2. Проза 1912-1915

Кузмин Михаил Алексеевич
2. Проза и эссеистика в трех томах
Проза:
русская классическая проза
5.00
рейтинг книги
Том 2. Проза 1912-1915

Всадник на белом коне. Трилогия

Морозевич Юрий В.
Всадник на белом коне
Фантастика:
научная фантастика
космическая фантастика
5.00
рейтинг книги
Всадник на белом коне. Трилогия

Собрание сочинений

Гримм Якоб и Вильгельм
Детские:
прочая детская литература
5.00
рейтинг книги
Собрание сочинений

Ледяная Королева (Трилогия)

Ахмедова Майя Саидовна
99. В одном томе
Фантастика:
фэнтези
8.31
рейтинг книги
Ледяная Королева (Трилогия)

999 (сборник)

Кинг Стивен
Шедевры мистики
Фантастика:
ужасы и мистика
6.14
рейтинг книги
999 (сборник)

Феномен Солженицына

Сарнов Бенедикт Михайлович
Документальная литература:
биографии и мемуары
6.25
рейтинг книги
Феномен Солженицына

Сан-Феличе. Книга вторая

Дюма-отец Александр
Приключения:
исторические приключения
6.00
рейтинг книги
Сан-Феличе. Книга вторая

Марсианские империи (сборник)

Берроуз Эдгар Райс
8. Марсианин Джон Картер
Фантастика:
научная фантастика
8.00
рейтинг книги
Марсианские империи (сборник)

Шайтан Иван 4

Тен Эдуард
4. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
8.00
рейтинг книги
Шайтан Иван 4

Гоголь в жизни

Вересаев Викентий Викентьевич
Проза:
русская классическая проза
5.00
рейтинг книги
Гоголь в жизни

Статьи из "Арабесок"

Гоголь Николай Васильевич
Другие редакции
Документальная литература:
публицистика
4.75
рейтинг книги
Статьи из Арабесок

Рекс

Орлов Алекс
Фантастика:
боевая фантастика
6.64
рейтинг книги
Рекс

Судьба

Золотарёв-Якутский Николай Гаврилович
Проза:
историческая проза
советская классическая проза
5.00
рейтинг книги
Судьба

Лимеренция

Долорес Х. К.
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Лимеренция