Manpages - tar_extract_file.3

Table of Contents

NAME

tar_extract_file, tar_extract_regfile, tar_extract_hardlink, tar_extract_symlink, tar_extract_chardev, tar_extract_blockdev, tar_extract_dir, tar_extract_fifo, tar_skip_regfile, tar_set_file_perms - extract files from a tar archive

SYNOPSIS

#include <libtar.h>

int tar_extract_file(TAR **/t/, char */realname/);*

int tar_extract_regfile(TAR **/t/, char */realname/);*

int tar_skip_regfile(TAR **/t/);*

int tar_extract_dir(TAR **/t/, char */realname/);*

int tar_extract_hardlink(TAR **/t/, char */realname/);*

int tar_extract_symlink(TAR **/t/, char */realname/);*

int tar_extract_blockdev(TAR **/t/, char */realname/);*

int tar_extract_chardev(TAR **/t/, char */realname/);*

int tar_extract_fifo(TAR **/t/, char */realname/);*

int tar_set_file_perms(TAR **/t/, char */realname/);*

VERSION

This man page documents version 1.2 of libtar.

DESCRIPTION

The *tar_extract_file*() function acts as a front-end to the other *tar_extract_**() functions. It checks the current tar header associated with the TAR handle t (which must be initialized first by calling *th_read*()) to determine what kind of file the header refers to. It then calls the appropriate *tar_extract_**() function to extract that kind of file.

The *tar_skip_regfile*() function skips over the file content blocks and positions the file pointer at the expected location of the next tar header block.

The *tar_set_file_perms*() function sets the attributes of the extracted file to match the encoded values. This includes the file’s modification time, mode, owner, and group. This function is automatically called by *tar_extract_file*(), but applications which call the other *tar_extract_**() functions directly will need to call *tar_set_file_perms*() manually if this behavior is desired.

RETURN VALUES

On successful completion, the functions documented here will return 0. On failure, they will return -1 and set errno to an appropriate value.

The *tar_extract_dir*() function will return 1 if the directory already exists.

ERRORS

The *tar_extract_file*() function will fail if:

EEXIST
If the O_NOOVERWRITE flag is set and the file already exists.

The *tar_extract_**() functions will fail if:

EINVAL
An entry could not be added to the internal file hash.
EINVAL
Less than T_BLOCKSIZE bytes were read from the tar archive.
EINVAL
The current file header associated with t refers to a kind of file other than the one which the called function knows about.

They may also fail if any of the following functions fail: *mkdir*(), *write*(), *link*(), *symlink*(), *mknod*(), *mkfifo*(), *utime*(), *chown*(), *lchown*(), *chmod*(), or *lstat*().

SEE ALSO

*mkdir*(2), *write*(2), *link*(2), *symlink*(2), *mknod*(2), *mkfifo*(2), *utime*(2), *chown*(2), *lchown*(2), *chmod*(2), *lstat*(2)

Author: dt

Created: 2022-02-21 Mon 12:07