Data Structures | |
struct | obuf |
Defines | |
#define | OBUF_CREATE O_CREAT |
#define | OBUF_EXCLUSIVE O_EXCL |
#define | OBUF_TRUNCATE O_TRUNC |
#define | OBUF_APPEND O_APPEND |
#define | obuf_error(out) iobuf_error(&(out)->io) |
#define | obuf_closed(out) iobuf_closed(&(out)->io) |
#define | obuf_timedout(out) iobuf_timedout(&((out)->io)) |
#define | obuf_rewind(out) obuf_seek(out,0) |
#define | obuf_tell(out) ((out)->io.offset+(out)->bufpos) |
#define | obuf_puts(out, str) obuf_write(out,str,strlen(str)) |
#define | obuf_putstr(out, str) obuf_write(out,(str)->s,(str)->len) |
Typedefs | |
typedef int(* | obuf_fn )(int, const void *, unsigned long) |
typedef struct obuf | obuf |
Functions | |
int | obuf_init (obuf *out, int fd, obuf_fn fn, unsigned flags, unsigned bufsize) |
int | obuf_open (obuf *out, const char *filename, int oflags, int mode, unsigned bufsize) |
int | obuf_close (obuf *out) |
int | obuf_flush (obuf *out) |
int | obuf_sync (obuf *out) |
int | obuf_write_large (obuf *out, const char *data, unsigned datalen) |
int | obuf_write (obuf *out, const char *data, unsigned datalen) |
int | obuf_seek (obuf *out, unsigned offset) |
int | obuf_pad (obuf *out, unsigned width, char ch) |
int | obuf_endl (obuf *out) |
int | obuf_putc (obuf *out, char ch) |
int | obuf_put2s (obuf *out, const char *s1, const char *s2) |
int | obuf_put3s (obuf *out, const char *s1, const char *s2, const char *s3) |
int | obuf_put4s (obuf *out, const char *s1, const char *s2, const char *s3, const char *s4) |
int | obuf_put5s (obuf *out, const char *s1, const char *s2, const char *s3, const char *s4, const char *s5) |
int | obuf_put6s (obuf *out, const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6) |
int | obuf_put7s (obuf *out, const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6, const char *s7) |
int | obuf_putns (obuf *out, unsigned int count,...) |
int | obuf_putf (obuf *out, const char *format,...) |
int | obuf_putfv (obuf *out, const char *format, va_list ap) |
int | obuf_putsflush (obuf *out, const char *s) |
int | obuf_puti (obuf *out, long data) |
int | obuf_putiw (obuf *out, long data, unsigned width, char pad) |
int | obuf_putu (obuf *out, unsigned long data) |
int | obuf_putuw (obuf *out, unsigned long data, unsigned width, char pad) |
int | obuf_putill (obuf *out, long long data) |
int | obuf_putiwll (obuf *out, long long data, unsigned width, char pad) |
int | obuf_putull (obuf *out, unsigned long long data) |
int | obuf_putuwll (obuf *out, unsigned long long data, unsigned width, char pad) |
int | obuf_putx (obuf *out, unsigned long data) |
int | obuf_putxw (obuf *out, unsigned long data, unsigned width, char pad) |
int | obuf_putX (obuf *out, unsigned long data) |
int | obuf_putXw (obuf *out, unsigned long data, unsigned width, char pad) |
int | obuf_putxll (obuf *out, unsigned long long data) |
int | obuf_putxwll (obuf *out, unsigned long long data, unsigned width, char pad) |
int | obuf_putXll (obuf *out, unsigned long long data) |
int | obuf_putXwll (obuf *out, unsigned long long data, unsigned width, char pad) |
int | obuf_putsnumw (obuf *out, long num, unsigned width, char pad, unsigned base, const char *digits) |
int | obuf_putunumw (obuf *out, unsigned long num, unsigned width, char pad, unsigned base, const char *digits) |
int | obuf_putsllnumw (obuf *out, long long num, unsigned width, char pad, unsigned base, const char *digits) |
int | obuf_putullnumw (obuf *out, unsigned long long num, unsigned width, char pad, unsigned base, const char *digits) |
int | obuf_putnetstring (obuf *out, const char *data, unsigned datalen) |
int | obuf_sign_pad (obuf *out, int sign, unsigned width, char pad) |
Variables | |
obuf | outbuf |
obuf | errbuf |
const char | obuf_dec_digits [10] |
const char | obuf_hex_lcase_digits [16] |
const char | obuf_hex_ucase_digits [16] |
0
(false) otherwise. #define OBUF_APPEND O_APPEND |
All writes go to the end of the file.
#define obuf_closed | ( | out | ) | iobuf_closed(&(out)->io) |
Test if the obuf
has been closed.
#define OBUF_CREATE O_CREAT |
Create the file if it does not already exist.
#define obuf_error | ( | out | ) | iobuf_error(&(out)->io) |
Test if the obuf
is in an error state.
#define OBUF_EXCLUSIVE O_EXCL |
If OBUF_CREATE
is set, fail to create the file if it already exists.
Write a dynamic string to the iobuf
#define obuf_rewind | ( | out | ) | obuf_seek(out,0) |
Set the effective write position to the start of the file.
#define obuf_tell | ( | out | ) | ((out)->io.offset+(out)->bufpos) |
Look up the current effective write position.
#define obuf_timedout | ( | out | ) | iobuf_timedout(&((out)->io)) |
Test if the last obuf
write timed out.
#define OBUF_TRUNCATE O_TRUNC |
If the file exists, truncate it to length 0.
Initialize an obuf
from an already-opened file descriptor.
int obuf_open | ( | obuf * | out, | |
const char * | filename, | |||
int | oflags, | |||
int | mode, | |||
unsigned | bufsize | |||
) |
Initialize an obuf
by opening a file for writing.
int obuf_pad | ( | obuf * | out, | |
unsigned | width, | |||
char | ch | |||
) |
Pad the output with width
instances of the single character ch
.
int obuf_put3s | ( | obuf * | out, | |
const char * | s1, | |||
const char * | s2, | |||
const char * | s3 | |||
) |
Write 3 C strings to the obuf
int obuf_put4s | ( | obuf * | out, | |
const char * | s1, | |||
const char * | s2, | |||
const char * | s3, | |||
const char * | s4 | |||
) |
Write 4 C strings to the obuf
int obuf_put5s | ( | obuf * | out, | |
const char * | s1, | |||
const char * | s2, | |||
const char * | s3, | |||
const char * | s4, | |||
const char * | s5 | |||
) |
Write 5 C strings to the obuf
int obuf_put6s | ( | obuf * | out, | |
const char * | s1, | |||
const char * | s2, | |||
const char * | s3, | |||
const char * | s4, | |||
const char * | s5, | |||
const char * | s6 | |||
) |
Write 6 C strings to the obuf
int obuf_put7s | ( | obuf * | out, | |
const char * | s1, | |||
const char * | s2, | |||
const char * | s3, | |||
const char * | s4, | |||
const char * | s5, | |||
const char * | s6, | |||
const char * | s7 | |||
) |
Write 7 C strings to the obuf
int obuf_putf | ( | obuf * | out, | |
const char * | format, | |||
... | ||||
) |
Write a formatted string using fmt_multi
from variable arguments
int obuf_putfv | ( | obuf * | out, | |
const char * | format, | |||
va_list | ap | |||
) |
Write a formatted string using fmt_multi
from a va_list
int obuf_puti | ( | obuf * | out, | |
long | data | |||
) |
Write a signed integer as decimal to the obuf
.
int obuf_putill | ( | obuf * | out, | |
long long | data | |||
) |
Write a signed long long integer as decimal to the obuf
.
int obuf_putiw | ( | obuf * | out, | |
long | data, | |||
unsigned | width, | |||
char | pad | |||
) |
Write a signed integer as decimal to the obuf
with padding.
int obuf_putiwll | ( | obuf * | out, | |
long long | data, | |||
unsigned | width, | |||
char | pad | |||
) |
Write a signed long long integer as decimal to the obuf
with padding.
int obuf_putnetstring | ( | obuf * | out, | |
const char * | data, | |||
unsigned | datalen | |||
) |
Write the binary block to the obuf
as a "netstring".
int obuf_putsllnumw | ( | obuf * | out, | |
long long | data, | |||
unsigned | width, | |||
char | pad, | |||
unsigned | base, | |||
const char * | digits | |||
) |
Write a signed long long integer to the obuf
with optional padding.
int obuf_putsnumw | ( | obuf * | out, | |
long | data, | |||
unsigned | width, | |||
char | pad, | |||
unsigned | base, | |||
const char * | digits | |||
) |
Write a signed integer to the obuf
with optional padding.
int obuf_putull | ( | obuf * | out, | |
unsigned long long | data | |||
) |
Write an unsigned long long integer as decimal to the obuf
.
int obuf_putullnumw | ( | obuf * | out, | |
unsigned long long | data, | |||
unsigned | width, | |||
char | pad, | |||
unsigned | base, | |||
const char * | digits | |||
) |
Write an unsigned long long integer to the obuf
with optional padding.
int obuf_putunumw | ( | obuf * | out, | |
unsigned long | data, | |||
unsigned | width, | |||
char | pad, | |||
unsigned | base, | |||
const char * | digits | |||
) |
Write an unsigned integer to the obuf
with optional padding.
int obuf_putuw | ( | obuf * | out, | |
unsigned long | data, | |||
unsigned | width, | |||
char | pad | |||
) |
Write an unsigned integer as decimal to the obuf
with padding.
int obuf_putuwll | ( | obuf * | out, | |
unsigned long long | data, | |||
unsigned | width, | |||
char | pad | |||
) |
Write an unsigned long long integer as decimal to the obuf
with padding.
int obuf_putX | ( | obuf * | out, | |
unsigned long | data | |||
) |
Write an unsigned integer as (upper-case) hexadecimal to the obuf
.
int obuf_putx | ( | obuf * | out, | |
unsigned long | data | |||
) |
Write an unsigned integer as (lower-case) hexadecimal to the obuf
.
int obuf_putXll | ( | obuf * | out, | |
unsigned long long | data | |||
) |
Write an unsigned long long integer as (upper-case) hexadecimal to the obuf
.
int obuf_putxll | ( | obuf * | out, | |
unsigned long long | data | |||
) |
Write an unsigned long long integer as (lower-case) hexadecimal to the obuf
.
int obuf_putXw | ( | obuf * | out, | |
unsigned long | data, | |||
unsigned | width, | |||
char | pad | |||
) |
Write an unsigned integer as (upper-case) hexadecimal to the obuf
with padding.
int obuf_putxw | ( | obuf * | out, | |
unsigned long | data, | |||
unsigned | width, | |||
char | pad | |||
) |
Write an unsigned integer as (lower-case) hexadecimal to the obuf
with padding.
int obuf_putXwll | ( | obuf * | out, | |
unsigned long long | data, | |||
unsigned | width, | |||
char | pad | |||
) |
Write an unsigned long long integer as (upper-case) hexadecimal to the obuf
with padding.
int obuf_putxwll | ( | obuf * | out, | |
unsigned long long | data, | |||
unsigned | width, | |||
char | pad | |||
) |
Write an unsigned long long integer as (lower-case) hexadecimal to the obuf
with padding.
int obuf_seek | ( | obuf * | out, | |
unsigned | offset | |||
) |
Set the effective write position.
int obuf_sign_pad | ( | obuf * | out, | |
int | sign, | |||
unsigned | width, | |||
char | pad | |||
) |
Pad the output with width
instances of the single character ch
, preceded by an optional negative sign at an appropriate place.
If the pad character is '0'
then any negative sign is placed as the first character, followed by padding. Otherwise, it is preceded by the padding.
int obuf_write | ( | obuf * | out, | |
const char * | data, | |||
unsigned | datalen | |||
) |
Write a block of data to the obuf
int obuf_write_large | ( | obuf * | out, | |
const char * | data, | |||
unsigned | datalen | |||
) |
Write a large block of data to the obuf
, avoiding copying.
Output buffer for stdout