Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

tar_fd(3) [centos man page]

tar_open(3)							  C Library Calls						       tar_open(3)

NAME
tar_open, tar_close - access a tar archive via a handle SYNOPSIS
#include <libtar.h> int tar_open(TAR **t, char *pathname, tartype_t *type, int oflags, int mode, int options); int tar_fdopen(TAR **t, int fd, char *pathname, tartype_t *type, int oflags, int mode, int options); int tar_fd(TAR *t");" int tar_close(TAR *t");" VERSION
This man page documents version 1.2 of libtar. DESCRIPTION
The tar_open() function opens a tar archive file corresponding to the filename named by the pathname argument. The oflags argument must be either O_RDONLY or O_WRONLY. The type argument specifies the access methods for the given file type. The tartype_t structure has members named openfunc, closefunc, readfunc() and writefunc(), which are pointers to the functions for opening, closing, reading, and writing the file, respectively. If type is NULL, the file type defaults to a normal file, and the standard open(), close(), read(), and write() functions are used. The options argument is a logical-or'ed combination of zero or more of the following: TAR_GNU Use GNU extensions. TAR_VERBOSE Send status messages to stdout. TAR_NOOVERWRITE Do not overwrite pre-existing files. TAR_IGNORE_EOT Skip all-zero blocks instead of treating them as EOT. TAR_IGNORE_MAGIC Do not validate the magic field in file headers. TAR_CHECK_VERSION Check the version field in file headers. (This field is normally ignored.) TAR_IGNORE_CRC Do not validate the CRC of file headers. The tar_open() function allocates memory for a TAR handle, and a pointer to the allocated memory is saved in the location specified by t. The TAR handle may be passed to other libtar calls to modify the opened tar archive. The TAR handle maintains all of the information about the open tar archive, including the archive type, options, and oflags selected when tar_open() was called. The TAR handle generated by tar_open() contains a file header structure. When reading a tar archive, this structure contains the last file header read from the tar archive. When writing a tar archive, this structure is used as a staging area to construct the next file header to be written to the archive. In addition, the TAR handle contains a hash table which is used to keep track of the device and inode infor- mation for each file which gets written to the tar archive. This is used to detect hard links, so that files do not need to be duplicated in the archive. The tar_fdopen() function is identical to the tar_open() function, except that fd is used as the previously-opened file descriptor for the tar file instead of calling type->openfunc() to open the file. The tar_fd() function returns the file descriptor associated with the TAR handle t. The tar_close() function closes the file descriptor associated with the TAR handle t and frees all dynamically-allocated memory. RETURN VALUE
The tar_open(), tar_fdopen(), and tar_close() functions return 0 on success. On failure, they return -1 and set errno. The tar_fd() function returns the file descriptor associated with the TAR handle t. ERRORS
tar_open() will fail if: EINVAL The oflags argument was something other than O_RDONLY or O_WRONLY. In addition, tar_open() and tar_close() may fail if it cannot allocate memory using calloc(), or if the open or close functions for the specified tar archive type fail. SEE ALSO
open(2), close(2), calloc(3) University of Illinois Jan 2001 tar_open(3)

Check Out this Related Man Page

tar_extract_file(3)						  C Library Calls					       tar_extract_file(3)

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 modifi- cation 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) University of Illinois Jan 2001 tar_extract_file(3)
Man Page