![]() Chapter Contents |
![]() Previous |
![]() Next |
| w_statfs |
| Portability: | SAS/C extension |
| SYNOPSIS | |
| DESCRIPTION | |
| RETURN VALUE | |
| PORTABILITY | |
| EXAMPLE | |
| RELATED FUNCTIONS |
| SYNOPSIS |
#include <sys/statfs.h>
int w_statfs(const char *fileSystem, struct w_statfs *statInfo,
size_t infoSize);
| DESCRIPTION |
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.
| RETURN VALUE |
If successful,
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.
| PORTABILITY |
The
w_statfs
function may be useful in USS applications; however, it is
not defined by the POSIX.1 standard and should not be used in portable applications.
| EXAMPLE |
The following example illustrates the
use of
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);
}
| RELATED FUNCTIONS |
![]() Chapter Contents |
![]() Previous |
![]() Next |
![]() Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.