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