fsctl.2 (2010 09)
f
fsctl(2) fsctl(2)
NAME
fsctl - file system control
SYNOPSIS
#include <sys/unistd.h>
int fsctl(
int fildes,
int command,
void *outbuf,
size_t outlen
);
DESCRIPTION
fsctl() provides access to file-system-specific information. fildes is an open file descriptor for a file in
the file system of interest. The possible values for command depend on the type of file system. Currently,
defined commands exist only for the CDFS file system (see
sys/cdfsdir.h
).
outbuf is a pointer to the data area in which data is returned from the file system. outlen gives the length
of the data area pointed to by outbuf.
The CDFS commands are:
CDFS_DIR_REC Returns the directory record for the file or directory indicated by fildes . The
record is returned in a structure of type cddir, defined in <sys/cdfsdir.h
>.
CDFS_XAR Returns the extended attribute record, if any, for the file or directory indicated
by fildes. Because the size of an extended attribute record varies, be sure outbuf
points to a data area of sufficient size. To find the necessary size, do the follow-
ing:
1. Use statfs (2). to get the logical block size of the CDFS volume.
2. Use an
fsctl() call with the CDFS_DIR_REC command to get the
extended attribute record size (in blocks) for the file or directory of interest.
The mincdd_xar_len field in the returned structure contains the size of
the extended attribute record in logical blocks. (If this field is zero, the file
or directory has no extended attribute record.)
3. Multiply
mincdd_xar_len
by the logical block size obtained in step 1 to
get the total space needed.
4. Once you get the extended attribute record, cast outbuf into a pointer to a
structure of type
cdxar_iso (defined in <sys/cdfsdir.h
>). This
enables you to access those fields that are common to all extended attribute
records. (See EXAMPLES below for an example of this process.)
If the extended attribute record contains additional system use or applica-
tion use data, that data will have to be accessed manually.
CDFS_AFID Returns the abstract file identifier for the primary volume whose root directory
is specified by fildes, terminated with a NULL character. Note that the constant
CDMAXNAMLEN defined in <sys/cdfsdir.h> gives the maximum length a file
identifier can have. Thus, CDMAXNAMLEN + 1 can be used for outlen and the
size of outbuf .
CDFS_BFID Returns the bibliographic file identifier for the primary volume whose root direc-
tory is specified by fildes , terminated with a NULL character. CDMAXNAMLEN
+ 1 can be used for the value of outlen and the size of outbuf .
CDFS_CFID Returns the copyright file identifier for the primary volume whose root directory
is specified by fildes , terminated with a NULL character. CDMAXNAMLEN +1
can be used for the value of outlen and the size of outbuf .
CDFS_VOL_ID Returns the volume ID for the primary volume specified by fildes,terminated
with a NULL character. The maximum size of the volume ID is 32 bytes, so a
length of 33 can be used for outlen and the size of utbuf .
CDFS_VOL_SET_ID
Returns the volume set ID for the primary volume specified by fildes ,terminated
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1