sam_restore_copy - Creates an archive copy for a Sun QFS or
cc [ flag ... ] file ... -L/opt/SUNWsamfs/lib
-lsam [ library ... ]
int sam_restore_copy(const char *path, int copy, struct
sam_stat *buf, size_t bufsize, struct sam_section *vbuf,
The sam_restore_copy() library routine creates an archive
copy for an existing Sun QFS or SAM-QFS file. The file must
already exist and the archive copy must not exist. The
sam_restore_copy() library routine creates an archive copy
using information supplied by the user and obtained from a
source such as the archiver.log. This library routine
accepts the following arguments:
path The path name to the file where the archive copy
is being created. It may be an absolute or
relative path name, but it must be no longer than
PATH_MAX (see the /usr/include/limits.h file).
copy The copy number (0, 1, 2, or 3) of the archive
copy that is being created.
buf A sam_stat structure. See sam_stat(3).
bufsize The size of the sam_stat structure. See
vbuf A sam_section structure for the array of VSNs if
the archive copy overflowed volumes, that is,
n_vsns > 1. If n_vsns = 1, vbuf should be set to
NULL. See sam_stat(3).
vbufsize The size of the sam_section structure. If n_vsns
= 1, vbufsize should be set to 0. See
The following members in the sam_stat structure must exist.
All other fields are ignored.
ulong_t st_mode /* File mode (see mknod(2)) */
ulong_t st_uid /* User ID of the file's owner */
ulong_t st_gid /* Group ID of the file's owner */
u_longlong_t st_size /* File size in bytes */
ulong_t st_atime /* Time of last access */
ulong_t st_ctime /* Time of last file status change */
ulong_t st_mtime /* Time of last data modification */
The following members in the sam_copy_s structure must exist
for the copy. All other fields are ignored.
u_longlong_t position; /* Position of the file on the media. */
time_t creation_time; /* Time the archive copy was created */
uint_t offset; /* Location of the copy in the archive file */
short n_vsns; /* Number of volumes used by the archive */
char media; /* Two character media type. */
char vsn; /* Volume serial name of the media volume */
The preceding fields have the following meaning:
position The position of the file recorded on the media.
This is the time that the archive was made. If
creation_time is zero, it is set to the value of
offset The location of the copy in the archive file in
units of 512 bytes.
n_vsns The number of volumes that this copy spans.
vsn The volume serial name of the cartridge where the
media The two-character media type. For example, the
media type for DLT tape is lt. See mcf(4).
Upon succesful creation of a file, a value of 0 is returned.
Otherwise, a negative value is returned and errno is set to
indicate the error. The possible return values are:
-1 user is not root
-2 invalid copy number
-3 invalid VSN
-4 file does not exist
-5 file open failed
-6 uid and gid do not match those for the existing file
-7 invalid VSN for this copy
-8 multiple copies but vbufsize incorrect
-9 media type invalid
-10 copy restore failed for some other reason
The configuration file for Sun QFS or
SAM-QFS file systems.