sam_segment - Sets segment attributes on a file or directory
cc [ flag
… ] file
… -L∕opt∕SUNWsamfs∕lib -lsam [ library … ]
#include "∕opt∕SUNWsamfs∕include∕lib.h"
int sam_segment(const char * path ,
const char * ops );
sam_segment()
sets segment attributes on a file or directory using
a StorageTek QFS or Oracle HSM system call.
If a file is segmented, it is archived and staged in segment size chunks.
sam_segment() is not supported on an Oracle HSM shared file system.
path
is the file on which to set the attributes.
ops
is the character string of options, for example: "dl104857600".
Individual options are described below.
dReturn the segment file attributes on the file to the default, i.e. reset to the file access instead of segment access. It not possible to reset a file that has already been segmented. When this option is specified, the attributes are reset to the default. If it is used, it should be the first character in the string.
l nSpecifies the segment size in units of bytes. The segment_size must be greater than or equal to one megabyte. This segment size is the size at which the file will be segmented for purposes of archiving and staging. An error is returned if the file is greater than the segment size.
s nSpecifies the number of segments to stage ahead when staging a
segmented file. This means when an offline segment is read, in
addition to staging the current segment, the
next
n
segments are also staged. The default
n
is zero, which means there is no stage read ahead. The maximum
n
is 255.
Upon successful completion a value of 0 is returned.
Otherwise, a value of -1 is returned and
errno
is set to indicate the error.
sam_segment()
fails if one or more of the following are true:
EINVALAn invalid option was specified, or the file is neither a regular file nor a directory. The file exceeds the specified segment size.
EPERMNot the owner or super-user.
EFAULTpath or ops points to an illegal address.
EINTRA signal was caught during the
sam_segment()
function.
ELOOPToo many symbolic links were encountered in translating path.
EMULTIHOPComponents of path require hopping to multiple remote machines and the file system does not allow it.
ENAMETOOLONGThe length of the
path
argument exceeds {PATH_MAX}, or the
length of a path component exceeds {NAME_MAX} while
{_POSIX_NO_TRUNC} is in effect.
ENOENTThe named file does not exist or is the null pathname.
ENOLINKpath points to a remote machine and the link to that machine is no longer active.
ENOTDIRA component of the path prefix is not a directory.
ENOTSUPLicense does not support segment.