13 #include <sys/types.h>
29 #if !defined(__LCLINT__) && !defined(__UCLIBC__) && defined(__GLIBC__) && \
30 (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2))
31 #define USE_COOKIE_SEEK_POINTER 1
140 size_t Fread(
void * buf,
size_t size,
size_t nmemb, FD_t fd)
150 size_t Fwrite(
const void * buf,
size_t size,
size_t nmemb, FD_t fd)
166 int Fgetpos(FD_t fd, fpos_t *pos)
168 int Fsetpos(FD_t fd, fpos_t *pos)
180 FD_t
Fdopen(FD_t ofd,
const char * fmode)
187 FD_t
Fopen(
const char * path,
217 int Fcntl(FD_t fd,
int op,
void *lip)
231 int Mkdir(
const char * path, mode_t
mode)
238 int Chdir(
const char * path)
245 int Rmdir(
const char * path)
256 int Chroot(
const char * path)
271 int Rename(
const char * oldpath,
const char * newpath)
278 int Link(
const char * oldpath,
const char * newpath)
285 int Unlink(
const char * path)
292 int Stat(
const char * path,
struct stat * st)
299 int Lstat(
const char * path,
struct stat * st)
306 int Fstat(FD_t fd,
struct stat * st)
313 int Fadvise(FD_t fd, off_t offset, off_t length,
int advice)
320 int Fallocate(FD_t fd, off_t offset, off_t length)
328 int Chown(
const char * path, uid_t owner, gid_t group)
336 int Fchown(FD_t fd, uid_t owner, gid_t group)
344 int Lchown(
const char * path, uid_t owner, gid_t group)
352 int Chmod(
const char * path, mode_t
mode)
408 int Mknod(
const char * path, mode_t
mode, dev_t dev)
417 int Utime(
const char * path,
const struct utimbuf * buf)
425 int Utimes(
const char * path,
const struct timeval * times)
433 int Lutimes(
const char * path,
const struct timeval * times)
441 int Symlink(
const char * oldpath,
const char * newpath)
450 int Readlink(
const char * path,
char * buf,
size_t bufsiz)
459 int Access(
const char * path,
int amode)
463 #if defined(__linux__)
467 int Mount(
const char *source,
const char *target,
468 const char *filesystemtype,
unsigned long mountflags,
476 int Umount(
const char *target)
483 int Umount2(
const char *target,
int flags)
497 int Glob_error(
const char * epath,
int eerrno)
504 int errfunc(
const char * epath,
int eerrno),
522 char *
Realpath(
const char * path,
char * resolved_path)
531 off_t
Lseek(
int fdno, off_t offset,
int whence)
552 ssize_t
fdRead(
void * cookie,
char * buf,
size_t count)
555 #define fdRead(_fd, _buf, _count) fdio->read((_fd), (_buf), (_count))
559 ssize_t
fdWrite(
void * cookie,
const char * buf,
size_t count)
562 #define fdWrite(_fd, _buf, _count) fdio->write((_fd), (_buf), (_count))
569 #define fdClose(_fd) fdio->close(_fd)
573 FD_t
fdOpen(
const char *path,
int flags, mode_t
mode)
576 #define fdOpen(_path, _flags, _mode) fdio->_open((_path), (_flags), (_mode))
582 FD_t
fdLink (
void * cookie,
const char * msg)
585 #define fdLink(_fd, _msg) \
586 ((FD_t)rpmioLinkPoolItem((rpmioItem)(_fd), _msg, __FILE__, __LINE__))
591 FD_t
fdFree( FD_t fd,
const char * msg)
594 #define fdFree(_fd, _msg) \
595 ((FD_t)rpmioFreePoolItem((rpmioItem)(_fd), _msg, __FILE__, __LINE__))
601 FD_t
fdNew (
const char * msg)
605 FD_t
XfdNew (
const char * msg,
const char * fn,
unsigned ln)
608 #define fdNew(_msg) XfdNew(_msg, __FILE__, __LINE__)
651 extern char * (*Getpass) (
const char * prompt)
653 char *
_GetPass (
const char * prompt)
717 int ufdCopy(FD_t sfd, FD_t tfd)
793 char * (*dbg) (
void *item),
794 void (*init) (
void *item),
795 void (*fini) (
void *item))
809 const char * msg,
const char * fn,
unsigned ln)
823 const char * msg,
const char * fn,
unsigned ln)
837 const char * msg,
const char * fn,
unsigned ln)
const char * urlStrerror(const char *url)
FD_t(* fdio_fopen_function_t)(const char *path, const char *fmode)
#define fdRead(_fd, _buf, _count)
int Fcntl(FD_t fd, int op, void *lip)
fcntl(2) clone.
int Fchflags(FD_t fd, unsigned int flags)
fchflags(2) clone.
off_t _libio_off_t
Hide libio API lossage.
ftperrCode_e
FTP and HTTP error codes.
int ufdCopy(FD_t sfd, FD_t tfd)
int Chroot(const char *path)
chroot(2) clone.
int Symlink(const char *oldpath, const char *newpath)
symlink(3) clone.
int Glob_error(const char *epath, int eerrno)
glob_error(3) clone.
int Utimes(const char *path, const struct timeval *times)
utimes(2) clone.
rpmioItem rpmioLinkPoolItem(rpmioItem item, const char *msg, const char *fn, unsigned ln)
Increment a pool item refcount.
int Access(const char *path, int amode)
access(2) clone.
size_t Fread(void *buf, size_t size, size_t nmemb, FD_t fd)
fread(3) clone.
enum ftperrCode_e ftperrCode
FTP and HTTP error codes.
const char * Fstrerror(FD_t fd)
strerror(3) clone.
int Fileno(FD_t fd)
fileno(3) clone.
Job queue and buffer pool management.
void rpmioClean(void)
Free all memory allocated by rpmio usage.
int Stat(const char *path, struct stat *st)
stat(2) clone.
void Globfree(void *_pglob)
globfree(3) clone.
int Open(const char *path, int flags, mode_t mode)
open(2) clone.
int rpmioMkpath(const char *path, mode_t mode, uid_t uid, gid_t gid)
Insure that directories in path exist, creating as needed.
void * rpmioFreePoolItem(rpmioItem item, const char *msg, const char *fn, unsigned ln)
Free a pool item.
int Fflush(FD_t fd)
fflush(3) clone.
int Link(const char *oldpath, const char *newpath)
link(2) clone.
ssize_t(* fdio_write_function_t)(void *cookie, const char *buf, size_t nbytes)
fdio_fdopen_function_t _fdopen
int Fadvise(FD_t fd, off_t offset, off_t length, int advice)
posix_fadvise(2) clone.
FD_t(* fdio_fdopen_function_t)(void *cookie, const char *fmode)
int Fgetpos(FD_t fd, fpos_t *pos)
int fdWritable(FD_t fd, int secs)
int Utime(const char *path, const struct utimbuf *buf)
FD_t Fdopen(FD_t ofd, const char *fmode)
fdio_fopen_function_t _fopen
#define fdLink(_fd, _msg)
int Fstat(FD_t fd, struct stat *st)
fstat(2) clone.
const char * ftpStrerror(int errorNumber)
int Chown(const char *path, uid_t owner, gid_t group)
chown(2) clone.
int(* fdio_close_function_t)(void *cookie)
#define fdOpen(_path, _flags, _mode)
int Fchown(FD_t fd, uid_t owner, gid_t group)
fchown(2) clone.
int fdReadable(FD_t fd, int secs)
int Ferror(FD_t fd)
ferror(3) clone.
fdio_close_function_t close
int Rmdir(const char *path)
rmdir(2) clone.
int Lutimes(const char *path, const struct timeval *times)
lutimes(2) clone.
int Glob(const char *pattern, int flags, int errfunc(const char *epath, int eerrno), void *_pglob)
glob(3) clone.
rpmioItem rpmioGetPool(rpmioPool pool, size_t size)
Get unused item from pool, or alloc a new item.
int Rename(const char *oldpath, const char *newpath)
rename(2) clone.
char * _RequestPass(const char *prompt)
int Mkdir(const char *path, mode_t mode)
mkdir(2) clone.
const char const bson * data
int Lstat(const char *path, struct stat *st)
lstat(2) clone.
int Fsetpos(FD_t fd, fpos_t *pos)
const char const bson const bson int limit
#define fdWrite(_fd, _buf, _count)
int Chflags(const char *path, unsigned int flags)
chflags(2) clone.
int Fallocate(FD_t fd, off_t offset, off_t length)
posix_fallocate(3)/fallocate(2) clone.
int Glob_pattern_p(const char *pattern, int quote)
glob_pattern_p(3) clone.
int Fclose(FD_t fd)
fclose(3) clone.
The FD_t File Handle data structure.
fdio_flush_function_t _flush
rpmioItem rpmioPutPool(rpmioItem item)
Put unused item into pool (or free).
const char const bson const bson * op
int Mknod(const char *path, mode_t mode, dev_t dev)
mknod(3) clone.
int Chdir(const char *path)
chdir(2) clone.
int ufdGetFile(FD_t sfd, FD_t tfd)
int Fchmod(FD_t fd, mode_t mode)
fchmod(2) clone.
FD_t Fopen(const char *path, const char *fmode)
fopen(3) clone.
const char const bson int mongo_write_concern int flags
rpmioItem rpmioUnlinkPoolItem(rpmioItem item, const char *msg, const char *fn, unsigned ln)
Decrement a pool item refcount.
int Readlink(const char *path, char *buf, size_t bufsiz)
readlink(2) clone.
int rpmioAccess(const char *FN, const char *path, int mode)
Check FN access, expanding relative paths and twiddles.
rpmioPool rpmioNewPool(const char *name, size_t size, int limit, int flags, char *(*dbg)(void *item), void(*init)(void *item), void(*fini)(void *item))
Create a memory pool.
const char const char size_t size
int(* fdio_flush_function_t)(void *cookie)
int Lchown(const char *path, uid_t owner, gid_t group)
lchown(2) clone.
int Fseek(FD_t fd, _libio_off_t offset, int whence)
fseek(3) clone.
const char * _chroot_prefix
void * ufdGetUrlinfo(FD_t fd)
FD_t XfdNew(const char *msg, const char *fn, unsigned ln)
fdio_write_function_t write
int Chmod(const char *path, mode_t mode)
chmod(2) clone.
ssize_t(* fdio_read_function_t)(void *cookie, char *buf, size_t nbytes)
fdio_read_function_t read
const char const char * pattern
int Lchmod(const char *path, mode_t mode)
lchmod(2) clone.
int(* fdio_seek_function_t)(void *cookie, _libio_pos_t pos, int whence)
fdio_seek_function_t seek
int Lchflags(const char *path, unsigned int flags)
lchflags(2) clone.
off_t Lseek(int fdno, off_t offset, int whence)
lseek(2) clone.
size_t Fwrite(const void *buf, size_t size, size_t nmemb, FD_t fd)
fwrite(3) clone.
char * _GetPass(const char *prompt)
char * Realpath(const char *path, char *resolved_path)
realpath(3) clone.
#define fdFree(_fd, _msg)
rpmioPool rpmioFreePool(rpmioPool pool)
Reclaim memory pool items.
int Mkfifo(const char *path, mode_t mode)
mkfifo(3) clone.
int Unlink(const char *path)
unlink(2) clone.