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

на главную

Жанры

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"); /* только для чтения */

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

Медиум

Злобин Михаил
1. О чем молчат могилы
Фантастика:
фэнтези
7.90
рейтинг книги
Медиум

Покоривший СТЕНУ 6: Пламя внутри

Мантикор Артемис
6. Покоривший СТЕНУ
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Покоривший СТЕНУ 6: Пламя внутри

Санек

Седой Василий
1. Санек
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Санек

Блуждающие огни 4

Панченко Андрей Алексеевич
4. Блуждающие огни
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Блуждающие огни 4

Черный Маг Императора 9

Герда Александр
9. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 9

Возрождение Феникса. Том 1

Володин Григорий Григорьевич
1. Возрождение Феникса
Фантастика:
фэнтези
попаданцы
альтернативная история
6.79
рейтинг книги
Возрождение Феникса. Том 1

Воевода

Ланцов Михаил Алексеевич
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Воевода

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Академия проклятий. Книги 1 - 7

Звездная Елена
Академия Проклятий
Фантастика:
фэнтези
8.98
рейтинг книги
Академия проклятий. Книги 1 - 7

Апраксин двор

Пылаев Валерий
2. Волков
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Апраксин двор

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6

Наследник с Меткой Охотника

Тарс Элиан
1. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Наследник с Меткой Охотника

Бастард

Майерс Александр
1. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард

Газлайтер. Том 16

Володин Григорий Григорьевич
16. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 16