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

# 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

#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}
    {$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.