diff options
author | Anand Avati <avati@redhat.com> | 2014-03-27 21:21:12 -0700 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2014-04-21 09:30:46 -0700 |
commit | 2da51737c49f7917a974bdf9e6e566307583ad16 (patch) | |
tree | dde4377deeea90b477a118174833c2cf343eff1a /libglusterfs/src/strfd.h | |
parent | 11473a6a10aaa5e62050e7e52115e2f8f10de124 (diff) |
strfd: memory backed file descriptor
A file descriptor like interface, backed by a string, on which
fprintf() like IO can be performed. Internally the backing string
is grown on demand.
Useful in generating virtual file content on the fly (used in meta)
Change-Id: I60d8751c4c750f3f06aa454a4ccd9909b3ac8ac7
BUG: 1089216
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/7508
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'libglusterfs/src/strfd.h')
-rw-r--r-- | libglusterfs/src/strfd.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/libglusterfs/src/strfd.h b/libglusterfs/src/strfd.h new file mode 100644 index 00000000000..e386c8432e4 --- /dev/null +++ b/libglusterfs/src/strfd.h @@ -0,0 +1,28 @@ +/* + Copyright (c) 2014 Red Hat, Inc. <http://www.redhat.com> + This file is part of GlusterFS. + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ + +#ifndef _STRFD_H +#define _STRFD_H + +typedef struct { + void *data; + size_t alloc_size; + size_t size; + off_t pos; +} strfd_t; + +strfd_t *strfd_open(); + +int strprintf(strfd_t *strfd, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); + +int strfd_close(strfd_t *strfd); + +#endif |