Blame doc/man/archive_entry_stat.3

Packit Service 1d0348
.TH ARCHIVE_ENTRY_STAT 3 "February 2, 2012" ""
Packit Service 1d0348
.SH NAME
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fB\%archive_entry_stat\fP,
Packit Service 1d0348
\fB\%archive_entry_copy_stat\fP,
Packit Service 1d0348
\fB\%archive_entry_filetype\fP,
Packit Service 1d0348
\fB\%archive_entry_set_filetype\fP,
Packit Service 1d0348
\fB\%archive_entry_mode\fP,
Packit Service 1d0348
\fB\%archive_entry_set_mode\fP,
Packit Service 1d0348
\fB\%archive_entry_size\fP,
Packit Service 1d0348
\fB\%archive_entry_size_is_set\fP,
Packit Service 1d0348
\fB\%archive_entry_set_size\fP,
Packit Service 1d0348
\fB\%archive_entry_unset_size\fP,
Packit Service 1d0348
\fB\%archive_entry_dev\fP,
Packit Service 1d0348
\fB\%archive_entry_set_dev\fP,
Packit Service 1d0348
\fB\%archive_entry_dev_is_set\fP,
Packit Service 1d0348
\fB\%archive_entry_devmajor\fP,
Packit Service 1d0348
\fB\%archive_entry_set_devmajor\fP,
Packit Service 1d0348
\fB\%archive_entry_devminor\fP,
Packit Service 1d0348
\fB\%archive_entry_set_devminor\fP,
Packit Service 1d0348
\fB\%archive_entry_ino\fP,
Packit Service 1d0348
\fB\%archive_entry_set_ino\fP,
Packit Service 1d0348
\fB\%archive_entry_ino_is_set\fP,
Packit Service 1d0348
\fB\%archive_entry_ino64\fP,
Packit Service 1d0348
\fB\%archive_entry_set_ino64\fP,
Packit Service 1d0348
\fB\%archive_entry_nlink\fP,
Packit Service 1d0348
\fB\%archive_entry_rdev\fP,
Packit Service 1d0348
\fB\%archive_entry_set_rdev\fP,
Packit Service 1d0348
\fB\%archive_entry_rdevmajor\fP,
Packit Service 1d0348
\fB\%archive_entry_set_rdevmajor\fP,
Packit Service 1d0348
\fB\%archive_entry_rdevminor\fP,
Packit Service 1d0348
\fB\%archive_entry_set_rdevminor\fP,
Packit Service 1d0348
\- accessor functions for manipulating archive entry descriptions
Packit Service 1d0348
.SH LIBRARY
Packit Service 1d0348
.ad l
Packit Service 1d0348
Streaming Archive Library (libarchive, -larchive)
Packit Service 1d0348
.SH SYNOPSIS
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fB#include <archive_entry.h>\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fIconst struct stat *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_stat\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_copy_stat\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ struct\ stat\ *sb\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fImode_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_filetype\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_filetype\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ int\ type\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fImode_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_mode\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_mode\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%mode_t\ mode\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint64_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_size\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_size_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_size\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int64_t\ size\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_unset_size\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIdev_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_dev\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_dev\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ dev\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_dev_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIdev_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_devmajor\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_devmajor\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ major\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIdev_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_devminor\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_devminor\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ minor\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIino_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_ino\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_ino\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ long\ ino\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_ino_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint64_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_ino64\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_ino64\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int64_t\ ino\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIunsigned int\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_nlink\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_nlink\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ int\ count\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIdev_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_rdev\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIdev_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_rdevmajor\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIdev_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_rdevminor\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_rdev\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ dev\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_rdevmajor\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ major\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_rdevminor\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ minor\fP);
Packit Service 1d0348
.SH DESCRIPTION
Packit Service 1d0348
.ad l
Packit Service 1d0348
.SS Copying to and from Vt struct stat
Packit Service 1d0348
The function
Packit Service 1d0348
\fB\%archive_entry_stat\fP()
Packit Service 1d0348
converts the various fields stored in the archive entry to the format
Packit Service 1d0348
used by
Packit Service 1d0348
\fBstat\fP(2).
Packit Service 1d0348
The return value remains valid until either
Packit Service 1d0348
\fB\%archive_entry_clear\fP()
Packit Service 1d0348
or
Packit Service 1d0348
\fB\%archive_entry_free\fP()
Packit Service 1d0348
is called.
Packit Service 1d0348
It is not affected by calls to the set accessor functions.
Packit Service 1d0348
It currently sets the following values in
Packit Service 1d0348
Vt struct stat:
Packit Service 1d0348
Vt st_atime,
Packit Service 1d0348
Vt st_ctime,
Packit Service 1d0348
Vt st_dev,
Packit Service 1d0348
Vt st_gid,
Packit Service 1d0348
Vt st_ino,
Packit Service 1d0348
Vt st_mode,
Packit Service 1d0348
Vt st_mtime,
Packit Service 1d0348
Vt st_nlink,
Packit Service 1d0348
Vt st_rdev,
Packit Service 1d0348
Vt st_size,
Packit Service 1d0348
Vt st_uid.
Packit Service 1d0348
In addition,
Packit Service 1d0348
Vt st_birthtime
Packit Service 1d0348
and high-precision information for time-related fields
Packit Service 1d0348
will be included on platforms that support it.
Packit Service 1d0348
.PP
Packit Service 1d0348
The function
Packit Service 1d0348
\fB\%archive_entry_copy_stat\fP()
Packit Service 1d0348
copies fields from the platform's
Packit Service 1d0348
Vt struct stat.
Packit Service 1d0348
Fields not provided by
Packit Service 1d0348
Vt struct stat
Packit Service 1d0348
are unchanged.
Packit Service 1d0348
.SS General accessor functions
Packit Service 1d0348
The functions
Packit Service 1d0348
\fB\%archive_entry_filetype\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_set_filetype\fP()
Packit Service 1d0348
get respectively set the filetype.
Packit Service 1d0348
The file type is one of the following constants:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
AE_IFREG
Packit Service 1d0348
Regular file
Packit Service 1d0348
.TP
Packit Service 1d0348
AE_IFLNK
Packit Service 1d0348
Symbolic link
Packit Service 1d0348
.TP
Packit Service 1d0348
AE_IFSOCK
Packit Service 1d0348
Socket
Packit Service 1d0348
.TP
Packit Service 1d0348
AE_IFCHR
Packit Service 1d0348
Character device
Packit Service 1d0348
.TP
Packit Service 1d0348
AE_IFBLK
Packit Service 1d0348
Block device
Packit Service 1d0348
.TP
Packit Service 1d0348
AE_IFDIR
Packit Service 1d0348
Directory
Packit Service 1d0348
.TP
Packit Service 1d0348
AE_IFIFO
Packit Service 1d0348
Named pipe (fifo)
Packit Service 1d0348
.RE
Packit Service 1d0348
Not all file types are supported by all platforms.
Packit Service 1d0348
The constants used by
Packit Service 1d0348
\fBstat\fP(2)
Packit Service 1d0348
may have different numeric values from the
Packit Service 1d0348
corresponding constants above.
Packit Service 1d0348
.PP
Packit Service 1d0348
The functions
Packit Service 1d0348
\fB\%archive_entry_mode\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_set_mode\fP()
Packit Service 1d0348
get/set a combination of file type and permissions and provide the
Packit Service 1d0348
equivalent of
Packit Service 1d0348
\fIst_mode\fP.
Packit Service 1d0348
Use of
Packit Service 1d0348
\fB\%archive_entry_filetype\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_perm\fP()
Packit Service 1d0348
for getting and
Packit Service 1d0348
\fB\%archive_entry_set_filetype\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_set_perm\fP()
Packit Service 1d0348
for setting is recommended.
Packit Service 1d0348
.PP
Packit Service 1d0348
The function
Packit Service 1d0348
\fB\%archive_entry_size\fP()
Packit Service 1d0348
returns the file size, if it has been set, and 0 otherwise.
Packit Service 1d0348
\fB\%archive_entry_size\fP()
Packit Service 1d0348
can be used to query that status.
Packit Service 1d0348
\fB\%archive_entry_set_size\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_unset_size\fP()
Packit Service 1d0348
set and unset the size, respectively.
Packit Service 1d0348
.PP
Packit Service 1d0348
The number of references (hardlinks) can be obtained by calling
Packit Service 1d0348
\fB\%archive_entry_nlinks\fP()
Packit Service 1d0348
and set with
Packit Service 1d0348
\fB\%archive_entry_set_nlinks\fP().
Packit Service 1d0348
.SS Identifying unique files
Packit Service 1d0348
The functions
Packit Service 1d0348
\fB\%archive_entry_dev\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_ino64\fP()
Packit Service 1d0348
are used by
Packit Service 1d0348
\fBarchive_entry_linkify\fP(3)
Packit Service 1d0348
to find hardlinks.
Packit Service 1d0348
The pair of device and inode is supposed to identify hardlinked files.
Packit Service 1d0348
.PP
Packit Service 1d0348
The device major and minor number can be obtained independently using
Packit Service 1d0348
\fB\%archive_entry_devmajor\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_devminor\fP().
Packit Service 1d0348
The device can be set either via
Packit Service 1d0348
\fB\%archive_entry_set_dev\fP()
Packit Service 1d0348
or by the combination of major and minor number using
Packit Service 1d0348
\fB\%archive_entry_set_devmajor\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_set_devminor\fP().
Packit Service 1d0348
.PP
Packit Service 1d0348
The inode number can be obtained using
Packit Service 1d0348
\fB\%archive_entry_ino\fP().
Packit Service 1d0348
This is a legacy interface that uses the platform
Packit Service 1d0348
Vt ino_t,
Packit Service 1d0348
which may be very small.
Packit Service 1d0348
To set the inode number,
Packit Service 1d0348
\fB\%archive_entry_set_ino64\fP()
Packit Service 1d0348
is the preferred interface.
Packit Service 1d0348
.SS Accessor functions for block and character devices
Packit Service 1d0348
Block and character devices are characterised either using a device number
Packit Service 1d0348
or a pair of major and minor number.
Packit Service 1d0348
The combined device number can be obtained with
Packit Service 1d0348
\fB\%archive_device_rdev\fP()
Packit Service 1d0348
and set with
Packit Service 1d0348
\fB\%archive_device_set_rdev\fP().
Packit Service 1d0348
The major and minor numbers are accessed by
Packit Service 1d0348
\fB\%archive_device_rdevmajor\fP(),
Packit Service 1d0348
\fB\%archive_device_rdevminor\fP()
Packit Service 1d0348
\fB\%archive_device_set_rdevmajor\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_device_set_rdevminor\fP().
Packit Service 1d0348
.PP
Packit Service 1d0348
The process of splitting the combined device number into major and
Packit Service 1d0348
minor number and the reverse process of combing them differs between
Packit Service 1d0348
platforms.
Packit Service 1d0348
Some archive formats use the combined form, while other formats use
Packit Service 1d0348
the split form.
Packit Service 1d0348
.SH SEE ALSO
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fBarchive_entry_acl\fP(3),
Packit Service 1d0348
\fBarchive_entry_perms\fP(3),
Packit Service 1d0348
\fBarchive_entry_time\fP(3),
Packit Service 1d0348
\fBlibarchive\fP(3),
Packit Service 1d0348
\fBstat\fP(2)