sam_exarchive - Exchanges archive copies of a file or directory
cc [
flag
… ]
file
… -L∕opt∕SUNWsamfs∕lib -lsam [
library … ]
#include "∕opt∕SUNWsamfs∕include∕lib.h"
int sam_exarchive(const char *
path ,
int
num_opts
,
…);
sam_exarchive()
lets you exchange archive copies of a
file or a directory using
an Oracle HSM system call.
path
is the file whose specified archive copies are to be exchanged,
followed by a sequence of
num_opts
input characters or options.
Individual options are described below.
c
copy_m | c
copy_nSpecifies the copies to be exchanged. The copy_m is exchanged with copy_n. Exactly two \f|'c' options must be specified. The first copy (copy_m) must have a valid archive entry.
M
Exarchives metadata only.
This includes directories, the segment index,
and removable media files.
Regular files are not exarchived.
If you are exarchiving a directory, you must specify
the "M
" option.
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_exarchive()
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.
EPERM
Not the owner or super-user.
EFAULT
Argument points to an illegal address.
EINTR
A signal was caught during the
sam_exarchive()
function.
ELOOP
Too many symbolic links were encountered in translating path.
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.