[Overview][Constants][Types][Procedures and functions][Variables][Index] | Reference for unit 'Unix' (#rtl)

# StatFS

Retrieve filesystem information from a path.

## Declaration

Source position: line 0

`function StatFS(`
`Path: PChar;`
`var Info: tstatfs`
`):cint; function StatFS(`
`Path: ansistring;`
`var Info: tstatfs`
`):cint;`

## Description

StatFS returns in Info information about the filesystem on which the file Path resides. Info is of type TStatFS.

The function returns zero if the call was succesful, 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 filesystem.

## See also

#rtl.baseunix.FpStat |  | Retrieve file information about a file descriptor.
#rtl.baseunix.FpLStat |  | Return information about symbolic link. Do not follow the link

## 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}
          writeln ('fsid    : ',info.fsid[0]);
          writeln ('Namelen : ',info.namelen);
          {$endif}
          write ('Type name of file to do fsstat. (q quits) :');
          readln (s)

          end;
        end;
    end.

Documentation generated on: Feb 26 2014