rpm 4.10.90

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

Files | Typedefs | Enumerations | Functions
File and Path Manipulation API.
Collaboration diagram for File and Path Manipulation API.:

## Files

file | rpmfileutil.h
| File and path manipulation helper functions.

## 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 }

## Functions

int | rpmDoDigest (int algo, const char *fn, int asAscii, unsigned char *digest, rpm_loff_t *fsizep)
| Calculate a file digest and size.
FD_t | rpmMkTemp (char *templ)
| Thin wrapper for mkstemp(3).
FD_t | rpmMkTempFile (const char *prefix, char **fn)
| Return file handle for a temporaray file.
int | rpmioMkpath (const char *path, mode_t mode, uid_t uid, gid_t gid)
| Insure that directories in path exist, creating as needed.
int | rpmMkdirs (const char *root, const char *pathstr)
| Create several directories (including parents if needed) in one go.
char * | rpmCleanPath (char *path)
| Canonicalize file path.
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.
char * | rpmGetPath (const char *path,...) RPM_GNUC_NULL_TERMINATED
| Return (malloc'ed) expanded, canonicalized, file path.
int | rpmIsGlob (const char *pattern, int quote)
| Check whether pattern contains any glob metacharacters.
int | rpmGlob (const char *patterns, int *argcPtr, ARGV_t *argvPtr)
| Return URL path(s) from a (URL prefixed) pattern glob.
char * | rpmEscapeSpaces (const char *s)
| Escape isspace(3) characters in string.
int | rpmFileIsCompressed (const char *file, rpmCompressedMagic *compressed)
| Return type of compression used in file.
int | rpmFileHasSuffix (const char *path, const char *suffix)
| Check if path (string) ends with given suffix.
char * | rpmGetCwd (void)
| Like getcwd() but the result is malloced.

## Typedef Documentation

typedef enum rpmCompressedMagic_e rpmCompressedMagic

## Enumeration Type Documentation

enum rpmCompressedMagic_e

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

Definition at line 20 of file rpmfileutil.h.

## Function Documentation

char* rpmCleanPath | ( | char * | path | ) |

Canonicalize file path.

Parameters:

  path | path to canonicalize (in-place)

Returns:
  pointer to path

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

Calculate a file digest and size.

Parameters:

  algo | digest algorithm
  fn | file name
  asAscii | return digest as ascii string?

Return values:

  digest | address of calculated digest
  *fsizep | file size pointer (or NULL)

Returns:
  0 on success, 1 on error

char* rpmEscapeSpaces | ( | const char * | s | ) |

Escape isspace(3) characters in string.

Parameters:

  s | string

Returns:
  escaped string

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

Check if path (string) ends with given suffix.

Parameters:

  path | (path) string
  suffix | suffix string to check for

Returns:
  1 if true, 0 otherwise

int rpmFileIsCompressed | ( | const char * | file,
|  | rpmCompressedMagic * | compressed
| ) |  |

Return type of compression used in file.

Parameters:

  file | name of file

Return values:

  compressed | address of compression type

Returns:
  0 on success, 1 on I/O error

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:

  urlroot | root URL (often path to chroot, or NULL)
  urlmdir | directory URL (often a directory, or NULL)
  urlfile | file URL (often a file, or NULL)

Returns:
  expanded, merged, canonicalized path (malloc'ed)

Referenced by buildForTarget().

char* rpmGetCwd | ( | void |  | ) |

Like getcwd() but the result is malloced.

Returns:
  current working directory (malloc'ed)

Referenced by buildForTarget().

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

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

Parameters:

  path | macro(s) to expand (NULL terminates list)

Returns:
  canonicalized path (malloc'ed)

Referenced by getTarSpec().

int rpmGlob | ( | const char * | patterns,
|  | int * | argcPtr,
|  | ARGV_t * | argvPtr
| ) |  |

Return URL path(s) from a (URL prefixed) pattern glob.

Parameters:

  patterns | glob pattern

Return values:

  *argcPtr | no. of paths
  *argvPtr | ARGV_t array of paths

Returns:
  0 on success

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

Insure that directories in path exist, creating as needed.

Parameters:

  path | directory path
  mode | directory mode (if created)
  uid | directory uid (if created), or -1 to skip
  gid | directory uid (if created), or -1 to skip

Returns:
  0 on success, errno (or -1) on error

int rpmIsGlob | ( | const char * | pattern,
|  | int | quote
| ) |  |

Check whether pattern contains any glob metacharacters.

Parameters:

  pattern | glob pattern
  quote | allow backslash quoting of metacharacters?

Returns:
  1 if pattern contains globs, 0 otherwise

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:

  root | leading root directory (or NULL for none)
  pathstr | list of directories separated with :

Returns:
  0 if all directories were successfully created (or already existed), non-zero otherwise

Referenced by buildForTarget().

FD_t rpmMkTemp | ( | char * | templ | ) |

Thin wrapper for mkstemp(3).

Parameters:

  templ | template for temporary filename

Returns:
  file handle or NULL on error

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:

  prefix | leading part of temp file path

Return values:

  fn | temp file name (or NULL)

Returns:
  fdptr open file handle or NULL on error