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

# [NAME](#NAME)

`archive_entry_hardlink`, `archive_entry_hardlink_w`, `archive_entry_set_hardlink`, `archive_entry_copy_hardlink`, `archive_entry_copy_hardlink_w`, `archive_entry_update_hardlink_utf8`, `archive_entry_set_link`, `archive_entry_copy_link`, `archive_entry_copy_link_w`, `archive_entry_update_link_utf8`, `archive_entry_pathname`, `archive_entry_pathname_w`, `archive_entry_set_pathname`, `archive_entry_copy_pathname`, `archive_entry_copy_pathname_w`, `archive_entry_update_pathname_utf8`, `archive_entry_sourcepath`, `archive_entry_copy_sourcepath`, `archive_entry_symlink`, `archive_entry_symlink_w`, `archive_entry_set_symlink`, `archive_entry_copy_symlink`, `archive_entry_copy_symlink_w`, `archive_entry_update_symlink_utf8` — functions for manipulating path names in archive entry descriptions

# [LIBRARY](#LIBRARY)

Streaming Archive Library (libarchive, -larchive)

# [SYNOPSIS](#SYNOPSIS)

`#include <archive_entry.h>`

`const char *`  
`archive_entry_hardlink`(`struct archive_entry *a`);

`const wchar_t *`  
`archive_entry_hardlink_w`(`struct archive_entry *a`);

`void`  
`archive_entry_set_hardlink`(`struct archive_entry *a`, `const char *path`);

`void`  
`archive_entry_copy_hardlink`(`struct archive_entry *a`, `const char *path`);

`void`  
`archive_entry_copy_hardlink_w`(`struct archive_entry *a`, `const wchar_t *path`);

`int`  
`archive_entry_update_hardlink_utf8`(`struct archive_entry *a`, `const char *path`);

`void`  
`archive_entry_set_link`(`struct archive_entry *a`, `const char *path`);

`void`  
`archive_entry_copy_link`(`struct archive_entry *a`, `const char *path`);

`void`  
`archive_entry_copy_link_w`(`struct archive_entry *a`, `const wchar_t *path`);

`int`  
`archive_entry_update_link_utf8`(`struct archive_entry *a`, `const char *path`);

`const char *`  
`archive_entry_pathname`(`struct archive_entry *a`);

`const wchar_t *`  
`archive_entry_pathname_w`(`struct archive_entry *a`);

`void`  
`archive_entry_set_pathname`(`struct archive_entry *a`, `const char *path`);

`void`  
`archive_entry_copy_pathname`(`struct archive_entry *a`, `const char *path`);

`void`  
`archive_entry_copy_pathname_w`(`struct archive_entry *a`, `const wchar_t *path`);

`int`  
`archive_entry_update_pathname_utf8`(`struct archive_entry *a`, `const char *path`);

`const char *`  
`archive_entry_sourcepath`(`struct archive_entry *a`);

`void`  
`archive_entry_copy_sourcepath`(`struct archive_entry *a`, `const char *path`);

`const char *`  
`archive_entry_symlink`(`struct archive_entry *a`);

`const wchar_t *`  
`archive_entry_symlink_w`(`struct archive_entry *a`);

`void`  
`archive_entry_set_symlink`(`struct archive_entry *a`, `const char *path`);

`void`  
`archive_entry_copy_symlink`(`struct archive_entry *a`, `const char *path`);

`void`  
`archive_entry_copy_symlink_w`(`struct archive_entry *a`, `const wchar_t *path`);

`int`  
`archive_entry_update_symlink_utf8`(`struct archive_entry *a`, `const char *path`);

# [DESCRIPTION](#DESCRIPTION)

Path names supported by [archive\_entry(3)](/man/os/libarchive/archive_entry.3):

hardlink

Destination of the hardlink.

link

Update only. For a symlink, update the destination. Otherwise, make the entry a hardlink and alter the destination for that.

pathname

Path in the archive

sourcepath

Path on the disk for use by [archive\_read\_disk(3)](/man/os/libarchive/archive_read_disk.3).

symlink

Destination of the symbolic link.

Path names can be provided in one of three different ways:

char *

Multibyte strings in the current locale.

wchar\_t *

Wide character strings in the current locale. The accessor functions are named [`XXX_w`](#XXX_w)().

UTF-8

Unicode strings encoded as UTF-8. These are convenience functions to update both the multibyte and wide character strings at the same time.

The sourcepath is a pure filesystem concept and never stored in an archive directly.

For that reason, it is only available as multibyte string. The link path is a convenience function for conditionally setting hardlink or symlink destination. It doesn't have a corresponding get accessor function.

[`archive_entry_set_XXX`](#archive_entry_set_XXX)() is an alias for [`archive_entry_copy_XXX`](#archive_entry_copy_XXX)().

# [SEE ALSO](#SEE_ALSO)

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

February 2, 2012 Linux 4.19.0-gvisor

---

Document: archive_entry_paths(3) from libarchive 3.8.10-r0 (Chainguard OS)
Source: https://github.com/libarchive/libarchive
