# RPM IO API.

## Files
file | rpmio.h
file | rpmurl.h
file | rpmmacro.h
file | rpmlog.h
| Yet Another syslog(3) API clone.

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

file | rpmgi.h
## Typedefs
typedef off_t | _libio_off_t
| Hide libio API lossage.
typedef struct FDIO_s * | FDIO_t

## Typedef Documentation

typedef off_t _libio_off_t

Hide libio API lossage.

The libio interface changed after glibc-2.1.3 to pass the seek offset argument as a pointer rather than as an off_t. The snarl below defines typedefs to isolate the lossage.

Definition at line 34 of file rpmio.h.

typedef struct FDIO_s* FDIO_t

Definition at line 40 of file rpmio.h.

typedef enum fdOpX_e fdOpX

Identify per-desciptor I/O operation statistics.

## Enumeration Type Documentation

enum fdOpX_e

Identify per-desciptor I/O operation statistics.

Enumerator:

  FDSTAT_READ | Read statistics index.
  FDSTAT_WRITE | Write statistics index.
  FDSTAT_SEEK | Seek statistics index.
  FDSTAT_CLOSE | Close statistics index
  FDSTAT_DIGEST | Digest statistics index.
  FDSTAT_MAX |

Definition at line 154 of file rpmio.h.

## Function Documentation

int Fclose | ( | FD_t | fd | ) |

fclose(3) clone.

Referenced by main().

int Fcntl | ( | FD_t | fd,
|  | int | op,
|  | void * | lip |
| ) |  |  |

fcntl(2) clone.

FD_t fdDup | ( | int | fdno | ) |

Referenced by main().

FD_t fdFree | ( | FD_t | fd,
|  | const char * | msg |
| ) |  |  |

FILE* fdGetFILE | ( | FD_t | fd | ) |

Get associated FILE stream from fd (if any).

FD_t fdLink | ( | void * | cookie,
|  | const char * | msg |
| ) |  |  |

FD_t fdNew | ( | const char * | msg | ) |

rpmop fdOp | ( | FD_t | fd,
|  | fdOpX | opx |
| ) |  |  |

FD_t Fdopen | ( | FD_t | ofd,
|  | const char * | fmode |
| ) |  |  |

Referenced by main().

int fdReadable | ( | FD_t | fd,
|  | int | secs |
| ) |  |  |

off_t fdSize | ( | FD_t | fd | ) |

int fdWritable | ( | FD_t | fd,
|  | int | secs |
| ) |  |  |

int Ferror | ( | FD_t | fd | ) |

ferror(3) clone.

Referenced by main().

int Fflush | ( | FD_t | fd | ) |

fflush(3) clone.

int Fileno | ( | FD_t | fd | ) |

fileno(3) clone.

FD_t Fopen | ( | const char * | path,
|  | const char * | fmode |
| ) |  |  |

fopen(3) clone.

Referenced by main().

ssize_t Fread | ( | void * | buf,
|  | size_t | size,
|  | size_t | nmemb,
|  | FD_t | fd |
| ) |  |  |

fread(3) clone.

int Fseek | ( | FD_t | fd,
|  | _libio_off_t | offset,
|  | int | whence |
| ) |  |  |

fseek(3) clone.

const char* Fstrerror | ( | FD_t | fd | ) |

strerror(3) clone.

Referenced by main().

ssize_t Fwrite | ( | const void * | buf,
|  | size_t | size,
|  | size_t | nmemb,
|  | FD_t | fd |
| ) |  |  |

fwrite(3) clone.

ssize_t timedRead | ( | FD_t | fd,
|  | void * | bufptr,
|  | size_t | length |
| ) |  |  |

XXX the name is misleading, this is a legacy wrapper that ensures only S_ISREG() files are read, nothing to do with timed.

.. TODO: get this out of the API

int ufdCopy | ( | FD_t | sfd,
|  | FD_t | tfd |
| ) |  |  |

Referenced by main().