FreeBSD manual
download PDF document: xo_emit.3.pdf
LIBXO(3) FreeBSD Library Functions Manual LIBXO(3)
NAME
xo_emit, xo_emit_h, xo_emit_hv - emit formatted output based on format
string and arguments
LIBRARY
Text, XML, JSON, and HTML Output Emission Library (libxo, -lxo)
SYNOPSIS
#include <libxo/xo.h>
xo_ssize_t
xo_emit(const char *fmt, ...);
xo_ssize_t
xo_emit_h(xo_handle_t *xop, const char *fmt, ...);
xo_ssize_t
xo_emit_hv(xo_handle_t *xop, const char *fmt, va_list vap);
DESCRIPTION
The xo_emit() function emits formatted output using the description in a
format string along with a set of zero or more arguments, in a style
similar to printf(3) but using a more complex format description string,
as described in xo_format(5).
xo_emit() uses the default output handle, as described in libxo(3), where
xo_emit_h() uses an explicit handle. xo_emit_hv() accepts a va_list for
additional flexibility.
EXAMPLES
In this example, a set of four values is emitted using the following
source code:
xo_emit(" {:lines/%7ju} {:words/%7ju} "
"{:characters/%7ju} {d:filename/%s}\n",
linect, wordct, charct, file);
Output can then be generated in various style, using the "--libxo"
option:
% wc /etc/motd
25 165 1140 /etc/motd
% wc --libxo xml,pretty,warn /etc/motd
<wc>
<file>
<lines>25</lines>
<words>165</words>
<characters>1140</characters>
<filename>/etc/motd</filename>
</file>
</wc>
% wc --libxo json,pretty,warn /etc/motd
{
"wc": {
"file": [
{
"lines": 25,
"words": 165,
<div class="line">
<div class="text"> </div>
<div class="data" data-tag="lines"> 25</div>
<div class="text"> </div>
<div class="data" data-tag="words"> 165</div>
<div class="text"> </div>
<div class="data" data-tag="characters"> 1140</div>
<div class="text"> </div>
<div class="data" data-tag="filename">/etc/motd</div>
</div>
RETURN CODE
xo_emit returns a negative value on error. If the XOF_COLUMNS flag has
been turned on for the specific handle using xo_set_flags(3), then the
number of display columns consumed by the output will be returned.
SEE ALSO
xo_open_container(3), xo_open_list(3), xo_emit_f(3), xo_emit_field 3,
xo_format(5), libxo(3)
HISTORY
The libxo library first appeared in FreeBSD 11.0.
AUTHORS
libxo was written by Phil Shafer <phil@freebsd.org>.
FreeBSD 14.0-RELEASE-p11 December 4, 2014 FreeBSD 14.0-RELEASE-p11