rpm 6.1.90
The RPM Package Manager
Loading...
Searching...
No Matches
File archive (aka payload) API.

File archive (aka payload) API. More...

Files

file  rpmarchive.h

Enumerations

enum  rpmfilesErrorCodes {
  RPMERR_ITER_END = -1 , RPMERR_BAD_MAGIC = -2 , RPMERR_BAD_HEADER = -3 , RPMERR_HDR_SIZE = -4 ,
  RPMERR_UNKNOWN_FILETYPE = -5 , RPMERR_MISSING_FILE = -6 , RPMERR_DIGEST_MISMATCH = -7 , RPMERR_INTERNAL = -8 ,
  RPMERR_UNMAPPED_FILE = -9 , RPMERR_ENOENT = -10 , RPMERR_ENOTEMPTY = -11 , RPMERR_FILE_SIZE = -12 ,
  RPMERR_ITER_SKIP = -13 , RPMERR_EXIST_AS_DIR = -14 , RPMERR_INVALID_SYMLINK = -15 , RPMERR_ENOTDIR = -16 ,
  RPMERR_OPEN_FAILED = -32768 , RPMERR_CHMOD_FAILED = -32769 , RPMERR_CHOWN_FAILED = -32770 , RPMERR_WRITE_FAILED = -32771 ,
  RPMERR_UTIME_FAILED = -32772 , RPMERR_UNLINK_FAILED = -32773 , RPMERR_RENAME_FAILED = -32774 , RPMERR_SYMLINK_FAILED = -32775 ,
  RPMERR_STAT_FAILED = -32776 , RPMERR_LSTAT_FAILED = -32777 , RPMERR_MKDIR_FAILED = -32778 , RPMERR_RMDIR_FAILED = -32779 ,
  RPMERR_MKNOD_FAILED = -32780 , RPMERR_MKFIFO_FAILED = -32781 , RPMERR_LINK_FAILED = -32782 , RPMERR_READLINK_FAILED = -32783 ,
  RPMERR_READ_FAILED = -32784 , RPMERR_COPY_FAILED = -32785 , RPMERR_LSETFCON_FAILED = -32786 , RPMERR_SETCAP_FAILED = -32787 ,
  RPMERR_CLOSE_FAILED = -32788
}

Functions

RPM_PUBLIC_API char * rpmfileStrerror (int rc)
RPM_PUBLIC_API rpmfi rpmfiNewArchiveWriter (FD_t fd, rpmfiles files)
RPM_PUBLIC_API rpmfi rpmfiNewArchiveReader (FD_t fd, rpmfiles files, int itype)
RPM_PUBLIC_API int rpmfiArchiveClose (rpmfi fi)
RPM_PUBLIC_API rpm_loff_t rpmfiArchiveTell (rpmfi fi)
RPM_PUBLIC_API size_t rpmfiArchiveWrite (rpmfi fi, const void *buf, size_t size)
RPM_PUBLIC_API int rpmfiArchiveWriteFile (rpmfi fi, FD_t fd)
RPM_PUBLIC_API ssize_t rpmfiArchiveRead (rpmfi fi, void *buf, size_t size)
RPM_PUBLIC_API int rpmfiArchiveHasContent (rpmfi fi)
RPM_PUBLIC_API int rpmfiArchiveReadToFile (rpmfi fi, FD_t fd, int nodigest)

Detailed Description

File archive (aka payload) API.

Enumeration Type Documentation

◆ rpmfilesErrorCodes

Error codes for archive and file handling

Function Documentation

◆ rpmfiArchiveClose()

RPM_PUBLIC_API int rpmfiArchiveClose ( rpmfi fi)

Close payload archive

Parameters
fifile info
Returns
> 0 on error

◆ rpmfiArchiveHasContent()

RPM_PUBLIC_API int rpmfiArchiveHasContent ( rpmfi fi)

Has current file content stored in the archive

Parameters
fifile info @ return 1 for regular files but 0 for hardlinks without content

◆ rpmfiArchiveRead()

RPM_PUBLIC_API ssize_t rpmfiArchiveRead ( rpmfi fi,
void * buf,
size_t size )

Read content from current file in archive

Parameters
fifile info
bufpointer to buffer
sizenumber of bytes to read
Returns
bytes actually read, -1 on error

◆ rpmfiArchiveReadToFile()

RPM_PUBLIC_API int rpmfiArchiveReadToFile ( rpmfi fi,
FD_t fd,
int nodigest )

Write content from current file in archive to a file

Parameters
fifile info
fdfile descriptor of file to write to
nodigestomit checksum check if 1
Returns
> 0 on error

◆ rpmfiArchiveTell()

RPM_PUBLIC_API rpm_loff_t rpmfiArchiveTell ( rpmfi fi)

Return current position in payload archive

Parameters
fifile info
Returns
position

◆ rpmfiArchiveWrite()

RPM_PUBLIC_API size_t rpmfiArchiveWrite ( rpmfi fi,
const void * buf,
size_t size )

Write content into current file in archive

Parameters
fifile info
bufpointer to content
sizenumber of bytes to write
Returns
bytes actually written

◆ rpmfiArchiveWriteFile()

RPM_PUBLIC_API int rpmfiArchiveWriteFile ( rpmfi fi,
FD_t fd )

Write content from given file into current file in archive

Parameters
fifile info
fdfile descriptor of file to read
Returns
> 0 on error

◆ rpmfileStrerror()

RPM_PUBLIC_API char * rpmfileStrerror ( int rc)

Return formatted error message on payload handling failure.

Parameters
rcerror code
Returns
formatted error string (malloced)

◆ rpmfiNewArchiveReader()

RPM_PUBLIC_API rpmfi rpmfiNewArchiveReader ( FD_t fd,
rpmfiles files,
int itype )

Get new file iterator for looping over the archive content. Returned rpmfi visites files in the order they are read from the payload. Content of the regular files can be retrieved with rpmfiArchiveRead() or rpmfiArchiveReadToFile() when they are visited with rpmfiNext(). rpmfiSetFX() is not supported for this type of iterator.

Parameters
fdfile
filesfile info
itypehow to handle hard links. See rpmFileIter.
Returns
new rpmfi

◆ rpmfiNewArchiveWriter()

RPM_PUBLIC_API rpmfi rpmfiNewArchiveWriter ( FD_t fd,
rpmfiles files )

Get new file iterator for writing the archive content. The returned rpmfi will only visit the files needing some content. You need to provide the content using rpmfiArchiveWrite() or rpmfiArchiveWriteFile(). Make sure to close the rpmfi with rpmfiArchiveClose() to get the trailer written. rpmfiSetFX() is not supported for this type of iterator.

Parameters
fdfile
filesfile info
Returns
new rpmfi