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.
d
Return 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 n
Specifies 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 n
Specifies 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:
EINVAL
An invalid option was specified, or the file is neither a regular file nor a directory. The file exceeds the specified segment size.
EPERM
Not the owner or super-user.
EFAULT
path or ops points to an illegal address.
EINTR
A signal was caught during the
sam_segment()
function.
ELOOP
Too many symbolic links were encountered in translating path.
EMULTIHOP
Components of path require hopping to multiple remote machines and the file system does not allow it.
ENAMETOOLONG
The 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.
ENOENT
The named file does not exist or is the null pathname.
ENOLINK
path points to a remote machine and the link to that machine is no longer active.
ENOTDIR
A component of the path prefix is not a directory.
ENOTSUP
License does not support segment.