rpm 4.19.92
The RPM Package Manager
Loading...
Searching...
No Matches
Files | Typedefs | Enumerations | Functions
File and Path Manipulation API.

File and path manipulation helper functions. More...

Collaboration diagram for File and Path Manipulation API.:

Files

file  rpmfileutil.h
 

Typedefs

typedef enum rpmCompressedMagic_e rpmCompressedMagic
 

Enumerations

enum  rpmCompressedMagic_e {
  COMPRESSED_NOT = 0 , COMPRESSED_OTHER = 1 , COMPRESSED_BZIP2 = 2 , COMPRESSED_ZIP = 3 ,
  COMPRESSED_LZMA = 4 , COMPRESSED_XZ = 5 , COMPRESSED_LZIP = 6 , COMPRESSED_LRZIP = 7 ,
  COMPRESSED_7ZIP = 8 , COMPRESSED_GEM = 9 , COMPRESSED_ZSTD = 10
}
 
enum  rpmglobFlags_e { RPMGLOB_NONE = 0 , RPMGLOB_NOCHECK = (1 << 0) }
 

Functions

int rpmDoDigest (int algo, const char *fn, int asAscii, unsigned char *digest)
 
FD_t rpmMkTemp (char *templ)
 
FD_t rpmMkTempFile (const char *prefix, char **fn)
 
int rpmioMkpath (const char *path, mode_t mode, uid_t uid, gid_t gid)
 
int rpmMkdirs (const char *root, const char *pathstr)
 
char * rpmCleanPath (char *path)
 
char * rpmGenPath (const char *urlroot, const char *urlmdir, const char *urlfile)
 
char * rpmGetPath (const char *path,...) RPM_GNUC_NULL_TERMINATED
 
int rpmGlobPath (const char *pattern, rpmglobFlags flags, int *argcPtr, ARGV_t *argvPtr)
 
int rpmGlob (const char *pattern, int *argcPtr, ARGV_t *argvPtr)
 
char * rpmEscapeSpaces (const char *s)
 
char * rpmEscape (const char *s, const char *accept)
 
void rpmUnescape (char *s, const char *accept)
 
int rpmFileIsCompressed (const char *file, rpmCompressedMagic *compressed)
 
int rpmFileHasSuffix (const char *path, const char *suffix)
 
char * rpmGetCwd (void)
 

Detailed Description

File and path manipulation helper functions.

Typedef Documentation

◆ rpmCompressedMagic

Compression types detected by rpm (subject to build configuration).

Enumeration Type Documentation

◆ rpmCompressedMagic_e

Compression types detected by rpm (subject to build configuration).

Enumerator
COMPRESSED_NOT 

not compressed

COMPRESSED_OTHER 

gzip can handle

COMPRESSED_BZIP2 

bzip2 can handle

COMPRESSED_ZIP 

unzip can handle

COMPRESSED_LZMA 

lzma can handle

COMPRESSED_XZ 

xz can handle

COMPRESSED_LZIP 

lzip can handle

COMPRESSED_LRZIP 

lrzip can handle

COMPRESSED_7ZIP 

7zip can handle

COMPRESSED_GEM 

gem can handle

COMPRESSED_ZSTD 

zstd can handle

◆ rpmglobFlags_e

RPM glob flags, largely modelled after glob(3) flags.

Enumerator
RPMGLOB_NOCHECK 

same as GLOB_NOCHECK

Function Documentation

◆ rpmCleanPath()

char * rpmCleanPath ( char *  path)

Canonicalize file path.

Parameters
pathpath to canonicalize (in-place)
Returns
pointer to path

◆ rpmDoDigest()

int rpmDoDigest ( int  algo,
const char *  fn,
int  asAscii,
unsigned char *  digest 
)

Calculate a file digest and size.

Parameters
algodigest algorithm
fnfile name
asAsciireturn digest as ascii string?
[out]digestaddress of calculated digest
Returns
0 on success, 1 on error

◆ rpmEscape()

char * rpmEscape ( const char *  s,
const char *  accept 
)

Escape given characters in string.

Parameters
sstring
acceptchars to escape
Returns
escaped string

◆ rpmEscapeSpaces()

char * rpmEscapeSpaces ( const char *  s)

Escape isspace(3) characters in string.

Parameters
sstring
Returns
escaped string

◆ rpmFileHasSuffix()

int rpmFileHasSuffix ( const char *  path,
const char *  suffix 
)

Check if path (string) ends with given suffix

Parameters
path(path) string
suffixsuffix string to check for
Returns
1 if true, 0 otherwise

◆ rpmFileIsCompressed()

int rpmFileIsCompressed ( const char *  file,
rpmCompressedMagic compressed 
)

Return type of compression used in file.

Parameters
filename of file
[out]compressedaddress of compression type
Returns
0 on success, 1 on I/O error

◆ rpmGenPath()

char * rpmGenPath ( const char *  urlroot,
const char *  urlmdir,
const char *  urlfile 
)

Merge 3 args into path, any or all of which may be a url. The leading part of the first URL encountered is used for the result, other URL prefixes are discarded, permitting a primitive form of URL inheiritance.

Parameters
urlrootroot URL (often path to chroot, or NULL)
urlmdirdirectory URL (often a directory, or NULL)
urlfilefile URL (often a file, or NULL)
Returns
expanded, merged, canonicalized path (malloc'ed)

◆ rpmGetCwd()

char * rpmGetCwd ( void  )

Like getcwd() but the result is malloced.

Returns
current working directory (malloc'ed)

◆ rpmGetPath()

char * rpmGetPath ( const char *  path,
  ... 
)

Return (malloc'ed) expanded, canonicalized, file path.

Parameters
pathmacro(s) to expand (NULL terminates list)
Returns
canonicalized path (malloc'ed)

◆ rpmGlob()

int rpmGlob ( const char *  pattern,
int *  argcPtr,
ARGV_t *  argvPtr 
)

Expand a glob pattern into matching paths, fail if nothing matches.

Parameters
patternglob pattern
[out]*argcPtrno. of paths
[out]*argvPtrARGV_t array of paths
Returns
0 on success

◆ rpmGlobPath()

int rpmGlobPath ( const char *  pattern,
rpmglobFlags  flags,
int *  argcPtr,
ARGV_t *  argvPtr 
)

Expand a glob pattern into matching paths. When RPMGLOB_NOCHECK is specified, non-matching and non-glob patterns are returned as is.

Parameters
patternglob pattern
flagsbit(s) to control glob operation
[out]*argcPtrno. of paths
[out]*argvPtrARGV_t array of paths
Returns
0 on success

◆ rpmioMkpath()

int rpmioMkpath ( const char *  path,
mode_t  mode,
uid_t  uid,
gid_t  gid 
)

Insure that directories in path exist, creating as needed.

Parameters
pathdirectory path
modedirectory mode (if created)
uiddirectory uid (if created), or -1 to skip
giddirectory uid (if created), or -1 to skip
Returns
0 on success, errno (or -1) on error

◆ rpmMkdirs()

int rpmMkdirs ( const char *  root,
const char *  pathstr 
)

Create several directories (including parents if needed) in one go. Macros in pathstr will be expanded in the process.

Parameters
rootleading root directory (or NULL for none)
pathstrlist of directories separated with :
Returns
0 if all directories were successfully created (or already existed), non-zero otherwise

◆ rpmMkTemp()

FD_t rpmMkTemp ( char *  templ)

Thin wrapper for mkstemp(3).

Parameters
templtemplate for temporary filename
Returns
file handle or NULL on error

◆ rpmMkTempFile()

FD_t rpmMkTempFile ( const char *  prefix,
char **  fn 
)

Return file handle for a temporaray file. A unique temporaray file path will be created in [prefix/]%{_tmppath} directory. The file name and the open file handle are returned.

Parameters
prefixleading part of temp file path
[out]fntemp file name (or NULL)
Returns
fdptr open file handle or NULL on error

◆ rpmUnescape()

void rpmUnescape ( char *  s,
const char *  accept 
)

Unescape each char listed in accept by removing a backslash preceding it.

Parameters
sstring
acceptchars to unescape (NULL for all)