sbuf sbuf_new sbuf_clear sbuf_setpos sbuf_bcat sbuf_bcopyin sbuf_bcpy sbuf_cat sbuf_copyin sbuf_cpy sbuf_printf sbuf_vprintf sbuf_putc sbuf_trim sbuf_overflowed sbuf_finish sbuf_data sbuf_len sbuf_done sbuf_delete - safe string formatting
The
sbuf_new ();
function initializes the
Fa sbuf
pointed to by its first argument.
If that pointer is
NULL
sbuf_new ();
allocates a
Vt struct sbuf
using
malloc(9).
The
Fa buf
argument is a pointer to a buffer in which to store the actual string;
if it is
NULL
sbuf_new ();
will allocate one using
malloc(9).
The
Fa length
is the initial size of the storage buffer.
The fourth argument,
Fa flags ,
may be comprised of the following flags:
Note that if Fa buf is not NULL it must point to an array of at least Fa length characters. The result of accessing that array directly while it is in use by the sbuf is undefined.
The
sbuf_delete ();
function clears the
Fa sbuf
and frees any memory allocated for it.
There must be a call to
sbuf_delete ();
for every call to
sbuf_new (.);
Any attempt to access the sbuf after it has been deleted will fail.
The
sbuf_clear ();
function invalidates the contents of the
Fa sbuf
and resets its position to zero.
The
sbuf_setpos ();
function sets the
Fa sbuf Ns 's
end position to
Fa pos ,
which is a value between zero and one less than the size of the
storage buffer.
This effectively truncates the sbuf at the new position.
The
sbuf_bcat ();
function appends the first
Fa len
bytes from the buffer
Fa buf
to the
Fa sbuf .
The
sbuf_bcopyin ();
function copies
Fa len
bytes from the specified userland address into the
Fa sbuf .
The
sbuf_bcpy ();
function replaces the contents of the
Fa sbuf
with the first
Fa len
bytes from the buffer
Fa buf .
The
sbuf_cat ();
function appends the NUL-terminated string
Fa str
to the
Fa sbuf
at the current position.
The
sbuf_copyin ();
function copies a NUL-terminated string from the specified userland
address into the
Fa sbuf .
If the
Fa len
argument is non-zero, no more than
Fa len
characters (not counting the terminating NUL) are copied; otherwise
the entire string, or as much of it as can fit in the
Fa sbuf ,
is copied.
The
sbuf_cpy ();
function replaces the contents of the
Fa sbuf
with those of the NUL-terminated string
Fa str .
This is equivalent to calling
sbuf_cat ();
with a fresh
Fa sbuf
or one which position has been reset to zero with
sbuf_clear ();
or
sbuf_setpos (.);
The
sbuf_printf ();
function formats its arguments according to the format string pointed
to by
Fa fmt
and appends the resulting string to the
Fa sbuf
at the current position.
The
sbuf_vprintf ();
function behaves the same as
sbuf_printf ();
except that the arguments are obtained from the variable-length argument list
Fa ap .
The
sbuf_putc ();
function appends the character
Fa c
to the
Fa sbuf
at the current position.
The
sbuf_trim ();
function removes trailing whitespace from the
Fa sbuf .
The
sbuf_overflowed ();
function returns a non-zero value if the
Fa sbuf
overflowed.
The
sbuf_finish ();
function null-terminates the
Fa sbuf
and marks it as finished, which means that it may no longer be
modified using
sbuf_setpos (,);
sbuf_cat (,);
sbuf_cpy (,);
sbuf_printf ();
or
sbuf_putc (.);
The
sbuf_data ();
and
sbuf_len ();
functions return the actual string and its length, respectively;
sbuf_data ();
only works on a finished
Fa sbuf .
sbuf_done ();
returns non-zero if the sbuf is finished.
The
sbuf_setpos ();
function returns -1 if
Fa pos
was invalid, and zero otherwise.
The
sbuf_cat (,);
sbuf_cpy (,);
sbuf_printf (,);
sbuf_putc (,);
and
sbuf_trim ();
functions
all return -1 if the buffer overflowed, and zero otherwise.
The
sbuf_overflowed ();
function
returns a non-zero value if the buffer overflowed, and zero otherwise.
The
sbuf_data ();
and
sbuf_len ();
functions return
NULL
and -1, respectively, if the buffer overflowed.
The
sbuf_copyin ();
function
returns -1 if copying string from userland failed, and number of bytes
copied otherwise.
This manual page was written by An Dag-Erling Sm/orgrav Aq [email protected] .
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |