Системное программирование в UNIX средствами Free Pascal

       

о файловой системе, заданной либо


uses linux;
Function FSStat(Path:Pathstr; Var buf:statfs):Boolean;
Function FSStat(Fd:longint; Var buf:stat):Boolean;
Обе функции возвращают информацию о файловой системе, заданной либо именем файла устройства path, либо дескриптором открытого файла fd. Параметр buf является указателем на структуру statfs, определенную модуле linux. Структура statfs включает, по меньшей мере, следующие элементы:



bsize:longint;
Размер блока данных, при котором система имеет наибольшую производительность. Например, значение bsize может составлять при этом 8 Кбайт, что означает, что система обеспечивает более эффективный ввод/вывод при операциях с такими порциями данных
bfree:longint;
Полное число свободных блоков
bavail:longint;
Число свободных блоков, доступных непривилегированным процессам
files:longint;
Полное число номеров индексных дескрипторов
ffree:longint;
Полное число свободных номеров индексных дескрипторов
fsid:longint;
Идентификатор файловой системы
namelen:longint;
Максимальная длина файла

Следующий пример делает примерно то же самое, что и стандартная команда df. Эта программа использует функцию fsstat для вывода числа свободных блоков и свободных индексных дескрипторов в файловой системе.
(* Программа fsys - вывод информации о файловой системе *)
(* Имя файловой системы передается в качестве аргумента *)
uses linux;
var
  buf:statfs;
 
begin
  if paramcount<>1 then
  begin
    writeln('Применение: fsys имя_файла');
    halt(1);
  end;
  if not fsstat(paramstr(1), buf) then
  begin
    writeln('Ошибка вызова fsstat');
    halt(2);
  end;
  writeln(paramstr(1),': свободных блоков ', buf.bfree, ', свободных индексов ', buf.ffree);
  halt(0);
end.

Содержание раздела