#include <sys/statfs.h> int w_statfs(const char *fileSystem, struct w_statfs *statInfo, size_t infoSize);
w_statfs
gets file system status information. The following
arguments are required:
fileSystem
w_getmntent
function.
statInfo
w_statfs
structure that is declared in the
<sys/statfs.h>
header. The following elements of this
structure provide file system status information:
int statfs_len
w_statfs
structure.
int statfs_blksize
unsigned int statfs_total_space
unsigned int statfs_free_space
infoSize
infoSize
is larger than the size of the w_statfs
structure, then all of the information is stored; if it is shorter
than the structure, then only a portion of the information is
stored; and if infoSize
is 0
, then no information is
stored.
A value of 0
for infoSize
may be used to test
whether or not a file system exists.
w_statfs
returns the
number of bytes stored. If infoSize
is 0
, the total
number of bytes of information available is returned. A
-1
is returned if unsuccessful.
w_statfs
function may be useful in
OpenEdition applications; however,
it is not defined by the POSIX.1 standard and should not be used
in portable applications.
w_statfs
to
obtain file system status information:
#include <sys/types.h> #include <sys/statfs.h> #include <sys/stat.h> #include <string.h> #include <stdio.h> main() { const char fileSys[] = "POSIX.FILE.SYSTEM"; char *mountPoint = "/u/userid/dev"; char *mountType = "HFS "; struct w_statfs workArea; /* Initialize work area. */ memset(&workArea, 0x00, sizeof(workArea)); /* Mount file system. */ if (mount(mountPoint, fileSys, mountType, MTM_RDWR, 0, NULL) != 0) perror("error mounting file system"); /* Get file system status information. */ if (w_statfs(fileSys, &workArea, sizeof(workArea)) == -1) perror("w_statfs error"); else printf("Length = %dn", workArea.statfs_len); printf("Block Size = %dn", workArea.statfs_blksize); printf("Blocks Used = %un", workArea.statfs_total_space); printf("Blocks Allocated = %un", workArea.statfs_used_space); printf("Free Space = %un", workArea.statfs_free_space); }
w_statfs
, w_getmntent
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.