tstatfs
Record describing a file system in the fpstatfs call.
Declaration
Source position: aliasptp.inc line 76
Type
tstatfs = UnixType.TStatFs
Description
StatFS returns in Info information about the file system on which the file Path resides. Info is of type TStatFS .
The function returns zero if the call was successful, a nonzero value is returned if the call failed.
Errors
Extended error information is returned by the FpGetErrno function:
- sys_enotdir
- A component of Path is not a directory.
- sys_einval
- Invalid character in Path.
- sys_enoent
- Path does not exist.
- sys_eaccess
- Search permission is denied for component inPath.
- sys_eloop
- A circular symbolic link was encountered in Path.
- sys_eio
- An error occurred while reading from the file system.
See also
Name | Description |
---|---|
#rtl.baseunix.FpLStat | Return information about symbolic link. Do not follow the link |
#rtl.baseunix.FpStat | Retrieve file information about a file descriptor. |
Example
program Example30;
{ Program to demonstrate the FSStat function. }
uses BaseUnix,Unix,UnixType;
var s : string;
fd : cint;
info : tstatfs;
begin
writeln ('Info about current partition : ');
s:='.';
while s<>'q' do
begin
Fd:=fpOpen(S,O_RDOnly);
if (fd>=0) then
begin
if fpfstatfs (fd,@info)<>0 then
begin
writeln('Fstat failed. Errno : ',fpgeterrno);
halt (1);
end;
FpClose(fd);
writeln;
writeln ('Result of fsstat on file ''',s,'''.');
{$if defined(Linux) or defined(sunos)}
// SysV like.
writeln ('fstype : ',info.fstype);
{$else}
// BSD like, incl Mac OS X.
writeln ('fstype : ',info.ftype);
{$endif}
writeln ('bsize : ',info.bsize);
writeln ('bfree : ',info.bfree);
writeln ('bavail : ',info.bavail);
writeln ('files : ',info.files);
writeln ('ffree : ',info.ffree);
{$ifdef FreeBSD}
writeln ('fsid : ',info.fsid[0]);
{$else}
{$ifndef Darwin}
writeln ('fsid : ',info.fsid[0]);
writeln ('Namelen : ',info.namelen);
{$endif}
{$endif}
write ('Type name of file to do fsstat. (q quits) :');
readln (s)
end;
end;
end.