|
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)
|