ARCHIVE\_ENTRY\_TIME(3) Library Functions Manual ARCHIVE\_ENTRY\_TIME(3)

# [NAME](#NAME)

`archive_entry_atime`, `archive_entry_atime_nsec`, `archive_entry_atime_is_set`, `archive_entry_set_atime`, `archive_entry_unset_atime`, `archive_entry_birthtime`, `archive_entry_birthtime_nsec`, `archive_entry_birthtime_is_set`, `archive_entry_set_birthtime`, `archive_entry_unset_birthtime`, `archive_entry_ctime`, `archive_entry_ctime_nsec`, `archive_entry_ctime_is_set`, `archive_entry_set_ctime`, `archive_entry_unset_ctime`, `archive_entry_mtime`, `archive_entry_mtime_nsec`, `archive_entry_mtime_is_set`, `archive_entry_set_mtime`, `archive_entry_unset_mtime` — functions for manipulating times in archive entry descriptions

# [LIBRARY](#LIBRARY)

Streaming Archive Library (libarchive, -larchive)

# [SYNOPSIS](#SYNOPSIS)

`#include <archive_entry.h>`

`time_t`  
`archive_entry_atime`(`struct archive_entry *a`);

`long`  
`archive_entry_atime_nsec`(`struct archive_entry *a`);

`int`  
`archive_entry_atime_is_set`(`struct archive_entry *a`);

`void`  
`archive_entry_set_atime`(`struct archive_entry *a`, `time_t sec`, `long nanosec`);

`void`  
`archive_entry_unset_atime`(`struct archive_entry *a`);

`time_t`  
`archive_entry_birthtime`(`struct archive_entry *a`);

`long`  
`archive_entry_birthtime_nsec`(`struct archive_entry *a`);

`int`  
`archive_entry_birthtime_is_set`(`struct archive_entry *a`);

`void`  
`archive_entry_set_birthtime`(`struct archive_entry *a`, `time_t sec`, `long nanosec`);

`void`  
`archive_entry_unset_birthtime`(`struct archive_entry *a`);

`time_t`  
`archive_entry_ctime`(`struct archive_entry *a`);

`long`  
`archive_entry_ctime_nsec`(`struct archive_entry *a`);

`int`  
`archive_entry_ctime_is_set`(`struct archive_entry *a`);

`void`  
`archive_entry_set_ctime`(`struct archive_entry *a`, `time_t sec`, `long nanosec`);

`void`  
`archive_entry_unset_ctime`(`struct archive_entry *a`);

`time_t`  
`archive_entry_mtime`(`struct archive_entry *a`);

`long`  
`archive_entry_mtime_nsec`(`struct archive_entry *a`);

`int`  
`archive_entry_mtime_is_set`(`struct archive_entry *a`);

`void`  
`archive_entry_set_mtime`(`struct archive_entry *a`, `time_t sec`, `long nanosec`);

`void`  
`archive_entry_unset_mtime`(`struct archive_entry *a`);

# [DESCRIPTION](#DESCRIPTION)

These functions create and manipulate the time fields in an `archive_entry`. Supported time fields are atime (access time), birthtime (creation time), ctime (last time an inode property was changed) and mtime (modification time).

[libarchive(3)](/man/os/libarchive/libarchive.3) provides a high-resolution interface. The timestamps are truncated automatically depending on the archive format (for archiving) or the filesystem capabilities (for restoring).

All timestamp fields are optional. The [`XXX_unset`](#XXX_unset)() functions can be used to mark the corresponding field as missing. The current state can be queried using [`XXX_is_set`](#XXX_is_set)(). Unset time fields have a second and nanosecond field of 0.

# [SEE ALSO](#SEE_ALSO)

[archive\_entry(3)](/man/os/libarchive/archive_entry.3), [libarchive(3)](/man/os/libarchive/libarchive.3)

# [HISTORY](#HISTORY)

The `libarchive` library first appeared in FreeBSD 5.3.

# [AUTHORS](#AUTHORS)

The `libarchive` library was written by Tim Kientzle ⟨kientzle@acm.org⟩.

February 2, 2012 Linux 4.19.0-gvisor

---

Document: archive_entry_time(3) from libarchive 3.8.9-r2 (Chainguard OS)
Source: https://github.com/libarchive/libarchive
