\hypertarget{group__obuf}{
\section{obuf: Output Buffer Management}
\label{group__obuf}\index{obuf: Output Buffer Management@{obuf: Output Buffer Management}}
}
\subsection*{Data Structures}
\begin{CompactItemize}
\item 
struct \hyperlink{structobuf}{obuf}
\end{CompactItemize}
\subsection*{Defines}
\begin{CompactItemize}
\item 
\#define \hyperlink{group__obuf_gf0b8d24d432d19c4c3fe9f8f1aa5a976}{OBUF\_\-CREATE}~O\_\-CREAT
\item 
\#define \hyperlink{group__obuf_g2f097eb9e0814eddffeba24e86a513df}{OBUF\_\-EXCLUSIVE}~O\_\-EXCL
\item 
\#define \hyperlink{group__obuf_gf21027144be2cdf09f8fb62184d036e0}{OBUF\_\-TRUNCATE}~O\_\-TRUNC
\item 
\#define \hyperlink{group__obuf_gbbdf0f428faeb7f324fbeb02dfc86922}{OBUF\_\-APPEND}~O\_\-APPEND
\item 
\#define \hyperlink{group__obuf_g62b6e576bfc1cd1f9184a144467eb125}{obuf\_\-error}(out)~iobuf\_\-error(\&(out) $\rightarrow$ io)
\item 
\#define \hyperlink{group__obuf_gdb3db33d9e3b8b4993afc9152f78cbbe}{obuf\_\-closed}(out)~iobuf\_\-closed(\&(out) $\rightarrow$ io)
\item 
\#define \hyperlink{group__obuf_ge82c646b1252e975b43a59fa5dbfc594}{obuf\_\-timedout}(out)~iobuf\_\-timedout(\&((out) $\rightarrow$ io))
\item 
\#define \hyperlink{group__obuf_gcfc4d6943e15538903c3667dea9a9f09}{obuf\_\-rewind}(out)~obuf\_\-seek(out,0)
\item 
\#define \hyperlink{group__obuf_g078f3950712509205177452270e73b20}{obuf\_\-tell}(out)~((out) $\rightarrow$ io.offset+(out) $\rightarrow$ bufpos)
\item 
\#define \hyperlink{group__obuf_g06c401948c88cae85fe586a9fd3580c8}{obuf\_\-puts}(out, \hyperlink{structstr}{str})~obuf\_\-write(out,\hyperlink{structstr}{str},strlen(\hyperlink{structstr}{str}))
\item 
\#define \hyperlink{group__obuf_g70a608bd004fc6f255852cafe415f716}{obuf\_\-putstr}(out, \hyperlink{structstr}{str})~obuf\_\-write(out,(\hyperlink{structstr}{str}) $\rightarrow$ s,(\hyperlink{structstr}{str}) $\rightarrow$ len)
\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
typedef int($\ast$) \hyperlink{group__obuf_g46a6ee433146535302e8baecb8b25cee}{obuf\_\-fn} (int, const void $\ast$, unsigned long)
\item 
typedef \hyperlink{structobuf}{obuf} \hyperlink{group__obuf_g5d21ad371d3d1522bbec6915145ef02d}{obuf}
\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
int \hyperlink{group__obuf_gb9eeed3514560048a940ee7b24dd1347}{obuf\_\-init} (\hyperlink{structobuf}{obuf} $\ast$out, int fd, \hyperlink{group__obuf_g46a6ee433146535302e8baecb8b25cee}{obuf\_\-fn} fn, unsigned flags, unsigned bufsize)
\item 
int \hyperlink{group__obuf_g3dea7751e7b1097224be09ff1e71888f}{obuf\_\-open} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$filename, int oflags, int mode, unsigned bufsize)
\item 
int \hyperlink{group__obuf_g610bff3f5c0764568ca4a4741340cfcc}{obuf\_\-close} (\hyperlink{structobuf}{obuf} $\ast$out)
\item 
int \hyperlink{group__obuf_g6ddac728408520e6d56da0505c6e03ad}{obuf\_\-flush} (\hyperlink{structobuf}{obuf} $\ast$out)
\item 
int \hyperlink{group__obuf_g926e867fc325f0b221ce507d6a6285e4}{obuf\_\-sync} (\hyperlink{structobuf}{obuf} $\ast$out)
\item 
int \hyperlink{group__obuf_g165f549a8931c793af8aef1db88a64d4}{obuf\_\-write\_\-large} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$data, unsigned datalen)
\item 
int \hyperlink{group__obuf_g03421ac22a31290e1e94462257b13781}{obuf\_\-write} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$data, unsigned datalen)
\item 
int \hyperlink{group__obuf_g2f5fa6c89c5d58023125710fa42285f4}{obuf\_\-seek} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned offset)
\item 
int \hyperlink{group__obuf_g608698be2e8e24767cf1b27716653660}{obuf\_\-pad} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned width, char ch)
\item 
int \hyperlink{group__obuf_g3076cb0bd4009f248207baba2e420197}{obuf\_\-endl} (\hyperlink{structobuf}{obuf} $\ast$out)
\item 
int \hyperlink{group__obuf_g875c0262a092dcb73bcbd0a3fa557d26}{obuf\_\-putc} (\hyperlink{structobuf}{obuf} $\ast$out, char ch)
\item 
int \hyperlink{group__obuf_g9ec0f20a3f1928e44691f57425703b57}{obuf\_\-put2s} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$s1, const char $\ast$s2)
\item 
int \hyperlink{group__obuf_gb34e2094f765c45757394f1a0c13de9b}{obuf\_\-put3s} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$s1, const char $\ast$s2, const char $\ast$s3)
\item 
int \hyperlink{group__obuf_ge39b3c2511685f4fe16e62fd9d509136}{obuf\_\-put4s} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$s1, const char $\ast$s2, const char $\ast$s3, const char $\ast$s4)
\item 
int \hyperlink{group__obuf_g7cb66052946afe11c239ef23ea767c5a}{obuf\_\-put5s} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$s1, const char $\ast$s2, const char $\ast$s3, const char $\ast$s4, const char $\ast$s5)
\item 
int \hyperlink{group__obuf_g864c5f97b57eee47292f643648f21d65}{obuf\_\-put6s} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$s1, const char $\ast$s2, const char $\ast$s3, const char $\ast$s4, const char $\ast$s5, const char $\ast$s6)
\item 
int \hyperlink{group__obuf_ga71c9bbbbacfe3b4a13ec56804ac6d13}{obuf\_\-put7s} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$s1, const char $\ast$s2, const char $\ast$s3, const char $\ast$s4, const char $\ast$s5, const char $\ast$s6, const char $\ast$s7)
\item 
int \hyperlink{group__obuf_g04c43549b6398ac77ef9f2364ddb26f2}{obuf\_\-putns} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned int count,...)
\item 
int \hyperlink{group__obuf_gf9c5d5661c1da0dffbc3c2c8c951f3ca}{obuf\_\-putf} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$format,...)
\item 
int \hyperlink{group__obuf_gb0e0f78155d17a50e83d61d2f686d945}{obuf\_\-putfv} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$format, va\_\-list ap)
\item 
int \hyperlink{group__obuf_geb191f028a654a047f02148a9af9811d}{obuf\_\-putsflush} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$s)
\item 
int \hyperlink{group__obuf_gd0ee3632bc0d26a9819377aba16d406f}{obuf\_\-puti} (\hyperlink{structobuf}{obuf} $\ast$out, long data)
\item 
int \hyperlink{group__obuf_g2cf372af70bc6147a2db479d8a85df5d}{obuf\_\-putiw} (\hyperlink{structobuf}{obuf} $\ast$out, long data, unsigned width, char pad)
\item 
int \hyperlink{group__obuf_g75231da78e1b0dcc2a9307f487c0a47d}{obuf\_\-putu} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long data)
\item 
int \hyperlink{group__obuf_gb733b82803b4ddf12e7ff1140cd4eaf4}{obuf\_\-putuw} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long data, unsigned width, char pad)
\item 
int \hyperlink{group__obuf_g54410e8023b4cf933657c1aad5842413}{obuf\_\-putill} (\hyperlink{structobuf}{obuf} $\ast$out, long long data)
\item 
int \hyperlink{group__obuf_g9735a1718e14888c15a68391fcfa8a32}{obuf\_\-putiwll} (\hyperlink{structobuf}{obuf} $\ast$out, long long data, unsigned width, char pad)
\item 
int \hyperlink{group__obuf_geb1a75d1bc3f7ae6bfaa91773bac1b0a}{obuf\_\-putull} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long long data)
\item 
int \hyperlink{group__obuf_gbd73e29249fddf85754a3248ad9b8909}{obuf\_\-putuwll} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long long data, unsigned width, char pad)
\item 
int \hyperlink{group__obuf_g73b0e1bad7d14bce50996b0a79e3e60f}{obuf\_\-putx} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long data)
\item 
int \hyperlink{group__obuf_g63bc25bd5decb5affccd967701181e02}{obuf\_\-putxw} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long data, unsigned width, char pad)
\item 
int \hyperlink{group__obuf_gf571b1aee85e5536ead2f139fe723a89}{obuf\_\-put\-X} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long data)
\item 
int \hyperlink{group__obuf_g4349ac8d9999d042abd3e885a96b42e0}{obuf\_\-put\-Xw} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long data, unsigned width, char pad)
\item 
int \hyperlink{group__obuf_ge0ed6f7cf0658c006863ace5c2716a79}{obuf\_\-putxll} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long long data)
\item 
int \hyperlink{group__obuf_g34cdd4dc150b9ebeebbe6b4e63b16f1a}{obuf\_\-putxwll} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long long data, unsigned width, char pad)
\item 
int \hyperlink{group__obuf_g2991868a52edf6fffa2ea17f5f8fee93}{obuf\_\-put\-Xll} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long long data)
\item 
int \hyperlink{group__obuf_g89141b7b75a203e1f2ba61a8396be456}{obuf\_\-put\-Xwll} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long long data, unsigned width, char pad)
\item 
int \hyperlink{group__obuf_gc91df37cd8f3fbb0384e296440d1ce42}{obuf\_\-putsnumw} (\hyperlink{structobuf}{obuf} $\ast$out, long num, unsigned width, char pad, unsigned base, const char $\ast$digits)
\item 
int \hyperlink{group__obuf_gd5b1e82de1a914549ce29defdbd11af9}{obuf\_\-putunumw} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long num, unsigned width, char pad, unsigned base, const char $\ast$digits)
\item 
int \hyperlink{group__obuf_g4e8023a4f1fdc030650fcbbac89d73ea}{obuf\_\-putsllnumw} (\hyperlink{structobuf}{obuf} $\ast$out, long long num, unsigned width, char pad, unsigned base, const char $\ast$digits)
\item 
int \hyperlink{group__obuf_g8df75140cd8e7e7e09d3416e1a89a4e3}{obuf\_\-putullnumw} (\hyperlink{structobuf}{obuf} $\ast$out, unsigned long long num, unsigned width, char pad, unsigned base, const char $\ast$digits)
\item 
int \hyperlink{group__obuf_ged03a0d0778f8b3e6af12cad3446eadd}{obuf\_\-putnetstring} (\hyperlink{structobuf}{obuf} $\ast$out, const char $\ast$data, unsigned datalen)
\item 
int \hyperlink{group__obuf_gbef86026d605262194142e28a3e192a4}{obuf\_\-sign\_\-pad} (\hyperlink{structobuf}{obuf} $\ast$out, int sign, unsigned width, char pad)
\end{CompactItemize}
\subsection*{Variables}
\begin{CompactItemize}
\item 
\hyperlink{structobuf}{obuf} \hyperlink{group__obuf_g7786baf4fe0e6d14e304536eb40d6354}{outbuf}
\item 
\hyperlink{structobuf}{obuf} \hyperlink{group__obuf_gfa9e5277c3780b0832a2a278eef7c59e}{errbuf}
\item 
\hypertarget{group__obuf_gf323837f74b28200d29102786dea80a8}{
const char \textbf{obuf\_\-dec\_\-digits} \mbox{[}10\mbox{]}}
\label{group__obuf_gf323837f74b28200d29102786dea80a8}

\item 
\hypertarget{group__obuf_g585c0dddc1175a6d7d8230fc968e9a8b}{
const char \textbf{obuf\_\-hex\_\-lcase\_\-digits} \mbox{[}16\mbox{]}}
\label{group__obuf_g585c0dddc1175a6d7d8230fc968e9a8b}

\item 
\hypertarget{group__obuf_gc7e9df74b8581cd333f3ed05f3e2ec70}{
const char \textbf{obuf\_\-hex\_\-ucase\_\-digits} \mbox{[}16\mbox{]}}
\label{group__obuf_gc7e9df74b8581cd333f3ed05f3e2ec70}

\end{CompactItemize}


\subsection{Detailed Description}
\begin{Desc}
\item[Calling Convention]\end{Desc}
Unless otherwise specified, the return value is non-zero (true) if the entire requested operation completed, and {\tt 0} (false) otherwise. 

\subsection{Define Documentation}
\hypertarget{group__obuf_gbbdf0f428faeb7f324fbeb02dfc86922}{
\index{obuf@{obuf}!OBUF_APPEND@{OBUF\_\-APPEND}}
\index{OBUF_APPEND@{OBUF\_\-APPEND}!obuf@{obuf}}
\subsubsection[OBUF\_\-APPEND]{\setlength{\rightskip}{0pt plus 5cm}\#define OBUF\_\-APPEND~O\_\-APPEND}}
\label{group__obuf_gbbdf0f428faeb7f324fbeb02dfc86922}


All writes go to the end of the file. \hypertarget{group__obuf_gdb3db33d9e3b8b4993afc9152f78cbbe}{
\index{obuf@{obuf}!obuf_closed@{obuf\_\-closed}}
\index{obuf_closed@{obuf\_\-closed}!obuf@{obuf}}
\subsubsection[obuf\_\-closed]{\setlength{\rightskip}{0pt plus 5cm}\#define obuf\_\-closed(out)~iobuf\_\-closed(\&(out) $\rightarrow$ io)}}
\label{group__obuf_gdb3db33d9e3b8b4993afc9152f78cbbe}


Test if the {\tt obuf} has been closed. \hypertarget{group__obuf_gf0b8d24d432d19c4c3fe9f8f1aa5a976}{
\index{obuf@{obuf}!OBUF_CREATE@{OBUF\_\-CREATE}}
\index{OBUF_CREATE@{OBUF\_\-CREATE}!obuf@{obuf}}
\subsubsection[OBUF\_\-CREATE]{\setlength{\rightskip}{0pt plus 5cm}\#define OBUF\_\-CREATE~O\_\-CREAT}}
\label{group__obuf_gf0b8d24d432d19c4c3fe9f8f1aa5a976}


Create the file if it does not already exist. \hypertarget{group__obuf_g62b6e576bfc1cd1f9184a144467eb125}{
\index{obuf@{obuf}!obuf_error@{obuf\_\-error}}
\index{obuf_error@{obuf\_\-error}!obuf@{obuf}}
\subsubsection[obuf\_\-error]{\setlength{\rightskip}{0pt plus 5cm}\#define obuf\_\-error(out)~iobuf\_\-error(\&(out) $\rightarrow$ io)}}
\label{group__obuf_g62b6e576bfc1cd1f9184a144467eb125}


Test if the {\tt obuf} is in an error state. \hypertarget{group__obuf_g2f097eb9e0814eddffeba24e86a513df}{
\index{obuf@{obuf}!OBUF_EXCLUSIVE@{OBUF\_\-EXCLUSIVE}}
\index{OBUF_EXCLUSIVE@{OBUF\_\-EXCLUSIVE}!obuf@{obuf}}
\subsubsection[OBUF\_\-EXCLUSIVE]{\setlength{\rightskip}{0pt plus 5cm}\#define OBUF\_\-EXCLUSIVE~O\_\-EXCL}}
\label{group__obuf_g2f097eb9e0814eddffeba24e86a513df}


If {\tt OBUF\_\-CREATE} is set, fail to create the file if it already exists. \hypertarget{group__obuf_g06c401948c88cae85fe586a9fd3580c8}{
\index{obuf@{obuf}!obuf_puts@{obuf\_\-puts}}
\index{obuf_puts@{obuf\_\-puts}!obuf@{obuf}}
\subsubsection[obuf\_\-puts]{\setlength{\rightskip}{0pt plus 5cm}\#define obuf\_\-puts(out, \hyperlink{structstr}{str})~obuf\_\-write(out,\hyperlink{structstr}{str},strlen(\hyperlink{structstr}{str}))}}
\label{group__obuf_g06c401948c88cae85fe586a9fd3580c8}


Write a C string to the {\tt obuf} \hypertarget{group__obuf_g70a608bd004fc6f255852cafe415f716}{
\index{obuf@{obuf}!obuf_putstr@{obuf\_\-putstr}}
\index{obuf_putstr@{obuf\_\-putstr}!obuf@{obuf}}
\subsubsection[obuf\_\-putstr]{\setlength{\rightskip}{0pt plus 5cm}\#define obuf\_\-putstr(out, \hyperlink{structstr}{str})~obuf\_\-write(out,(\hyperlink{structstr}{str}) $\rightarrow$ s,(\hyperlink{structstr}{str}) $\rightarrow$ len)}}
\label{group__obuf_g70a608bd004fc6f255852cafe415f716}


Write a dynamic string to the {\tt iobuf} \hypertarget{group__obuf_gcfc4d6943e15538903c3667dea9a9f09}{
\index{obuf@{obuf}!obuf_rewind@{obuf\_\-rewind}}
\index{obuf_rewind@{obuf\_\-rewind}!obuf@{obuf}}
\subsubsection[obuf\_\-rewind]{\setlength{\rightskip}{0pt plus 5cm}\#define obuf\_\-rewind(out)~obuf\_\-seek(out,0)}}
\label{group__obuf_gcfc4d6943e15538903c3667dea9a9f09}


Set the effective write position to the start of the file. \hypertarget{group__obuf_g078f3950712509205177452270e73b20}{
\index{obuf@{obuf}!obuf_tell@{obuf\_\-tell}}
\index{obuf_tell@{obuf\_\-tell}!obuf@{obuf}}
\subsubsection[obuf\_\-tell]{\setlength{\rightskip}{0pt plus 5cm}\#define obuf\_\-tell(out)~((out) $\rightarrow$ io.offset+(out) $\rightarrow$ bufpos)}}
\label{group__obuf_g078f3950712509205177452270e73b20}


Look up the current effective write position. \hypertarget{group__obuf_ge82c646b1252e975b43a59fa5dbfc594}{
\index{obuf@{obuf}!obuf_timedout@{obuf\_\-timedout}}
\index{obuf_timedout@{obuf\_\-timedout}!obuf@{obuf}}
\subsubsection[obuf\_\-timedout]{\setlength{\rightskip}{0pt plus 5cm}\#define obuf\_\-timedout(out)~iobuf\_\-timedout(\&((out) $\rightarrow$ io))}}
\label{group__obuf_ge82c646b1252e975b43a59fa5dbfc594}


Test if the last {\tt obuf} write timed out. \hypertarget{group__obuf_gf21027144be2cdf09f8fb62184d036e0}{
\index{obuf@{obuf}!OBUF_TRUNCATE@{OBUF\_\-TRUNCATE}}
\index{OBUF_TRUNCATE@{OBUF\_\-TRUNCATE}!obuf@{obuf}}
\subsubsection[OBUF\_\-TRUNCATE]{\setlength{\rightskip}{0pt plus 5cm}\#define OBUF\_\-TRUNCATE~O\_\-TRUNC}}
\label{group__obuf_gf21027144be2cdf09f8fb62184d036e0}


If the file exists, truncate it to length 0. 

\subsection{Typedef Documentation}
\hypertarget{group__obuf_g5d21ad371d3d1522bbec6915145ef02d}{
\index{obuf@{obuf}!obuf@{obuf}}
\index{obuf@{obuf}!obuf@{obuf}}
\subsubsection[obuf]{\setlength{\rightskip}{0pt plus 5cm}typedef struct \hyperlink{structobuf}{obuf} \hyperlink{structobuf}{obuf}}}
\label{group__obuf_g5d21ad371d3d1522bbec6915145ef02d}


Output specific buffer typedef. \hypertarget{group__obuf_g46a6ee433146535302e8baecb8b25cee}{
\index{obuf@{obuf}!obuf_fn@{obuf\_\-fn}}
\index{obuf_fn@{obuf\_\-fn}!obuf@{obuf}}
\subsubsection[obuf\_\-fn]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$) \hyperlink{group__obuf_g46a6ee433146535302e8baecb8b25cee}{obuf\_\-fn}(int, const void $\ast$, unsigned long)}}
\label{group__obuf_g46a6ee433146535302e8baecb8b25cee}


{\tt obuf} write function pointer prototype. 

\subsection{Function Documentation}
\hypertarget{group__obuf_g610bff3f5c0764568ca4a4741340cfcc}{
\index{obuf@{obuf}!obuf_close@{obuf\_\-close}}
\index{obuf_close@{obuf\_\-close}!obuf@{obuf}}
\subsubsection[obuf\_\-close]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-close (\hyperlink{structobuf}{obuf} $\ast$ {\em out})}}
\label{group__obuf_g610bff3f5c0764568ca4a4741340cfcc}


Flush and close the {\tt obuf} \hypertarget{group__obuf_g3076cb0bd4009f248207baba2e420197}{
\index{obuf@{obuf}!obuf_endl@{obuf\_\-endl}}
\index{obuf_endl@{obuf\_\-endl}!obuf@{obuf}}
\subsubsection[obuf\_\-endl]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-endl (\hyperlink{structobuf}{obuf} $\ast$ {\em out})}}
\label{group__obuf_g3076cb0bd4009f248207baba2e420197}


Write a newline to the {\tt obuf} and flush it. \hypertarget{group__obuf_g6ddac728408520e6d56da0505c6e03ad}{
\index{obuf@{obuf}!obuf_flush@{obuf\_\-flush}}
\index{obuf_flush@{obuf\_\-flush}!obuf@{obuf}}
\subsubsection[obuf\_\-flush]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-flush (\hyperlink{structobuf}{obuf} $\ast$ {\em out})}}
\label{group__obuf_g6ddac728408520e6d56da0505c6e03ad}


Write all pending data in the {\tt obuf} to the file descriptor. \hypertarget{group__obuf_gb9eeed3514560048a940ee7b24dd1347}{
\index{obuf@{obuf}!obuf_init@{obuf\_\-init}}
\index{obuf_init@{obuf\_\-init}!obuf@{obuf}}
\subsubsection[obuf\_\-init]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-init (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, int {\em fd}, \hyperlink{group__obuf_g46a6ee433146535302e8baecb8b25cee}{obuf\_\-fn} {\em fn}, unsigned {\em flags}, unsigned {\em bufsize})}}
\label{group__obuf_gb9eeed3514560048a940ee7b24dd1347}


Initialize an {\tt obuf} from an already-opened file descriptor. \hypertarget{group__obuf_g3dea7751e7b1097224be09ff1e71888f}{
\index{obuf@{obuf}!obuf_open@{obuf\_\-open}}
\index{obuf_open@{obuf\_\-open}!obuf@{obuf}}
\subsubsection[obuf\_\-open]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-open (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em filename}, int {\em oflags}, int {\em mode}, unsigned {\em bufsize})}}
\label{group__obuf_g3dea7751e7b1097224be09ff1e71888f}


Initialize an {\tt obuf} by opening a file for writing. \hypertarget{group__obuf_g608698be2e8e24767cf1b27716653660}{
\index{obuf@{obuf}!obuf_pad@{obuf\_\-pad}}
\index{obuf_pad@{obuf\_\-pad}!obuf@{obuf}}
\subsubsection[obuf\_\-pad]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-pad (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned {\em width}, char {\em ch})}}
\label{group__obuf_g608698be2e8e24767cf1b27716653660}


Pad the output with {\tt width} instances of the single character {\tt ch}. \hypertarget{group__obuf_g9ec0f20a3f1928e44691f57425703b57}{
\index{obuf@{obuf}!obuf_put2s@{obuf\_\-put2s}}
\index{obuf_put2s@{obuf\_\-put2s}!obuf@{obuf}}
\subsubsection[obuf\_\-put2s]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put2s (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em s1}, const char $\ast$ {\em s2})}}
\label{group__obuf_g9ec0f20a3f1928e44691f57425703b57}


Write 2 C strings to the {\tt obuf} \hypertarget{group__obuf_gb34e2094f765c45757394f1a0c13de9b}{
\index{obuf@{obuf}!obuf_put3s@{obuf\_\-put3s}}
\index{obuf_put3s@{obuf\_\-put3s}!obuf@{obuf}}
\subsubsection[obuf\_\-put3s]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put3s (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em s1}, const char $\ast$ {\em s2}, const char $\ast$ {\em s3})}}
\label{group__obuf_gb34e2094f765c45757394f1a0c13de9b}


Write 3 C strings to the {\tt obuf} \hypertarget{group__obuf_ge39b3c2511685f4fe16e62fd9d509136}{
\index{obuf@{obuf}!obuf_put4s@{obuf\_\-put4s}}
\index{obuf_put4s@{obuf\_\-put4s}!obuf@{obuf}}
\subsubsection[obuf\_\-put4s]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put4s (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em s1}, const char $\ast$ {\em s2}, const char $\ast$ {\em s3}, const char $\ast$ {\em s4})}}
\label{group__obuf_ge39b3c2511685f4fe16e62fd9d509136}


Write 4 C strings to the {\tt obuf} \hypertarget{group__obuf_g7cb66052946afe11c239ef23ea767c5a}{
\index{obuf@{obuf}!obuf_put5s@{obuf\_\-put5s}}
\index{obuf_put5s@{obuf\_\-put5s}!obuf@{obuf}}
\subsubsection[obuf\_\-put5s]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put5s (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em s1}, const char $\ast$ {\em s2}, const char $\ast$ {\em s3}, const char $\ast$ {\em s4}, const char $\ast$ {\em s5})}}
\label{group__obuf_g7cb66052946afe11c239ef23ea767c5a}


Write 5 C strings to the {\tt obuf} \hypertarget{group__obuf_g864c5f97b57eee47292f643648f21d65}{
\index{obuf@{obuf}!obuf_put6s@{obuf\_\-put6s}}
\index{obuf_put6s@{obuf\_\-put6s}!obuf@{obuf}}
\subsubsection[obuf\_\-put6s]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put6s (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em s1}, const char $\ast$ {\em s2}, const char $\ast$ {\em s3}, const char $\ast$ {\em s4}, const char $\ast$ {\em s5}, const char $\ast$ {\em s6})}}
\label{group__obuf_g864c5f97b57eee47292f643648f21d65}


Write 6 C strings to the {\tt obuf} \hypertarget{group__obuf_ga71c9bbbbacfe3b4a13ec56804ac6d13}{
\index{obuf@{obuf}!obuf_put7s@{obuf\_\-put7s}}
\index{obuf_put7s@{obuf\_\-put7s}!obuf@{obuf}}
\subsubsection[obuf\_\-put7s]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put7s (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em s1}, const char $\ast$ {\em s2}, const char $\ast$ {\em s3}, const char $\ast$ {\em s4}, const char $\ast$ {\em s5}, const char $\ast$ {\em s6}, const char $\ast$ {\em s7})}}
\label{group__obuf_ga71c9bbbbacfe3b4a13ec56804ac6d13}


Write 7 C strings to the {\tt obuf} \hypertarget{group__obuf_g875c0262a092dcb73bcbd0a3fa557d26}{
\index{obuf@{obuf}!obuf_putc@{obuf\_\-putc}}
\index{obuf_putc@{obuf\_\-putc}!obuf@{obuf}}
\subsubsection[obuf\_\-putc]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putc (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, char {\em ch})}}
\label{group__obuf_g875c0262a092dcb73bcbd0a3fa557d26}


Write a single character to the {\tt obuf} \hypertarget{group__obuf_gf9c5d5661c1da0dffbc3c2c8c951f3ca}{
\index{obuf@{obuf}!obuf_putf@{obuf\_\-putf}}
\index{obuf_putf@{obuf\_\-putf}!obuf@{obuf}}
\subsubsection[obuf\_\-putf]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putf (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em format},  {\em ...})}}
\label{group__obuf_gf9c5d5661c1da0dffbc3c2c8c951f3ca}


Write a formatted string using {\tt fmt\_\-multi} from variable arguments \begin{Desc}
\item[Examples: ]\par
\hyperlink{adt_2ghash__test_8c-example}{adt/ghash\_\-test.c}.\end{Desc}
\hypertarget{group__obuf_gb0e0f78155d17a50e83d61d2f686d945}{
\index{obuf@{obuf}!obuf_putfv@{obuf\_\-putfv}}
\index{obuf_putfv@{obuf\_\-putfv}!obuf@{obuf}}
\subsubsection[obuf\_\-putfv]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putfv (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em format}, va\_\-list {\em ap})}}
\label{group__obuf_gb0e0f78155d17a50e83d61d2f686d945}


Write a formatted string using {\tt fmt\_\-multi} from a {\tt va\_\-list} \hypertarget{group__obuf_gd0ee3632bc0d26a9819377aba16d406f}{
\index{obuf@{obuf}!obuf_puti@{obuf\_\-puti}}
\index{obuf_puti@{obuf\_\-puti}!obuf@{obuf}}
\subsubsection[obuf\_\-puti]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-puti (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, long {\em data})}}
\label{group__obuf_gd0ee3632bc0d26a9819377aba16d406f}


Write a signed integer as decimal to the {\tt obuf}. \begin{Desc}
\item[Examples: ]\par
\hyperlink{adt_2gqueue__test_8c-example}{adt/gqueue\_\-test.c}, and \hyperlink{adt_2gstack__test_8c-example}{adt/gstack\_\-test.c}.\end{Desc}
\hypertarget{group__obuf_g54410e8023b4cf933657c1aad5842413}{
\index{obuf@{obuf}!obuf_putill@{obuf\_\-putill}}
\index{obuf_putill@{obuf\_\-putill}!obuf@{obuf}}
\subsubsection[obuf\_\-putill]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putill (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, long long {\em data})}}
\label{group__obuf_g54410e8023b4cf933657c1aad5842413}


Write a signed long long integer as decimal to the {\tt obuf}. \hypertarget{group__obuf_g2cf372af70bc6147a2db479d8a85df5d}{
\index{obuf@{obuf}!obuf_putiw@{obuf\_\-putiw}}
\index{obuf_putiw@{obuf\_\-putiw}!obuf@{obuf}}
\subsubsection[obuf\_\-putiw]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putiw (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, long {\em data}, unsigned {\em width}, char {\em pad})}}
\label{group__obuf_g2cf372af70bc6147a2db479d8a85df5d}


Write a signed integer as decimal to the {\tt obuf} with padding. \hypertarget{group__obuf_g9735a1718e14888c15a68391fcfa8a32}{
\index{obuf@{obuf}!obuf_putiwll@{obuf\_\-putiwll}}
\index{obuf_putiwll@{obuf\_\-putiwll}!obuf@{obuf}}
\subsubsection[obuf\_\-putiwll]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putiwll (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, long long {\em data}, unsigned {\em width}, char {\em pad})}}
\label{group__obuf_g9735a1718e14888c15a68391fcfa8a32}


Write a signed long long integer as decimal to the {\tt obuf} with padding. \hypertarget{group__obuf_ged03a0d0778f8b3e6af12cad3446eadd}{
\index{obuf@{obuf}!obuf_putnetstring@{obuf\_\-putnetstring}}
\index{obuf_putnetstring@{obuf\_\-putnetstring}!obuf@{obuf}}
\subsubsection[obuf\_\-putnetstring]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putnetstring (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em data}, unsigned {\em datalen})}}
\label{group__obuf_ged03a0d0778f8b3e6af12cad3446eadd}


Write the binary block to the {\tt obuf} as a \char`\"{}netstring\char`\"{}. \hypertarget{group__obuf_g04c43549b6398ac77ef9f2364ddb26f2}{
\index{obuf@{obuf}!obuf_putns@{obuf\_\-putns}}
\index{obuf_putns@{obuf\_\-putns}!obuf@{obuf}}
\subsubsection[obuf\_\-putns]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putns (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned int {\em count},  {\em ...})}}
\label{group__obuf_g04c43549b6398ac77ef9f2364ddb26f2}


Write N C strings to the {\tt obuf} \hypertarget{group__obuf_geb191f028a654a047f02148a9af9811d}{
\index{obuf@{obuf}!obuf_putsflush@{obuf\_\-putsflush}}
\index{obuf_putsflush@{obuf\_\-putsflush}!obuf@{obuf}}
\subsubsection[obuf\_\-putsflush]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putsflush (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em str})}}
\label{group__obuf_geb191f028a654a047f02148a9af9811d}


Write a C string to the {\tt obuf} and flush it. \hypertarget{group__obuf_g4e8023a4f1fdc030650fcbbac89d73ea}{
\index{obuf@{obuf}!obuf_putsllnumw@{obuf\_\-putsllnumw}}
\index{obuf_putsllnumw@{obuf\_\-putsllnumw}!obuf@{obuf}}
\subsubsection[obuf\_\-putsllnumw]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putsllnumw (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, long long {\em data}, unsigned {\em width}, char {\em pad}, unsigned {\em base}, const char $\ast$ {\em digits})}}
\label{group__obuf_g4e8023a4f1fdc030650fcbbac89d73ea}


Write a signed long long integer to the {\tt obuf} with optional padding. \hypertarget{group__obuf_gc91df37cd8f3fbb0384e296440d1ce42}{
\index{obuf@{obuf}!obuf_putsnumw@{obuf\_\-putsnumw}}
\index{obuf_putsnumw@{obuf\_\-putsnumw}!obuf@{obuf}}
\subsubsection[obuf\_\-putsnumw]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putsnumw (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, long {\em data}, unsigned {\em width}, char {\em pad}, unsigned {\em base}, const char $\ast$ {\em digits})}}
\label{group__obuf_gc91df37cd8f3fbb0384e296440d1ce42}


Write a signed integer to the {\tt obuf} with optional padding. \hypertarget{group__obuf_g75231da78e1b0dcc2a9307f487c0a47d}{
\index{obuf@{obuf}!obuf_putu@{obuf\_\-putu}}
\index{obuf_putu@{obuf\_\-putu}!obuf@{obuf}}
\subsubsection[obuf\_\-putu]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putu (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long {\em data})}}
\label{group__obuf_g75231da78e1b0dcc2a9307f487c0a47d}


Write an unsigned integer as decimal to the {\tt obuf}. \hypertarget{group__obuf_geb1a75d1bc3f7ae6bfaa91773bac1b0a}{
\index{obuf@{obuf}!obuf_putull@{obuf\_\-putull}}
\index{obuf_putull@{obuf\_\-putull}!obuf@{obuf}}
\subsubsection[obuf\_\-putull]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putull (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long long {\em data})}}
\label{group__obuf_geb1a75d1bc3f7ae6bfaa91773bac1b0a}


Write an unsigned long long integer as decimal to the {\tt obuf}. \hypertarget{group__obuf_g8df75140cd8e7e7e09d3416e1a89a4e3}{
\index{obuf@{obuf}!obuf_putullnumw@{obuf\_\-putullnumw}}
\index{obuf_putullnumw@{obuf\_\-putullnumw}!obuf@{obuf}}
\subsubsection[obuf\_\-putullnumw]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putullnumw (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long long {\em data}, unsigned {\em width}, char {\em pad}, unsigned {\em base}, const char $\ast$ {\em digits})}}
\label{group__obuf_g8df75140cd8e7e7e09d3416e1a89a4e3}


Write an unsigned long long integer to the {\tt obuf} with optional padding. \hypertarget{group__obuf_gd5b1e82de1a914549ce29defdbd11af9}{
\index{obuf@{obuf}!obuf_putunumw@{obuf\_\-putunumw}}
\index{obuf_putunumw@{obuf\_\-putunumw}!obuf@{obuf}}
\subsubsection[obuf\_\-putunumw]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putunumw (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long {\em data}, unsigned {\em width}, char {\em pad}, unsigned {\em base}, const char $\ast$ {\em digits})}}
\label{group__obuf_gd5b1e82de1a914549ce29defdbd11af9}


Write an unsigned integer to the {\tt obuf} with optional padding. \hypertarget{group__obuf_gb733b82803b4ddf12e7ff1140cd4eaf4}{
\index{obuf@{obuf}!obuf_putuw@{obuf\_\-putuw}}
\index{obuf_putuw@{obuf\_\-putuw}!obuf@{obuf}}
\subsubsection[obuf\_\-putuw]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putuw (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long {\em data}, unsigned {\em width}, char {\em pad})}}
\label{group__obuf_gb733b82803b4ddf12e7ff1140cd4eaf4}


Write an unsigned integer as decimal to the {\tt obuf} with padding. \hypertarget{group__obuf_gbd73e29249fddf85754a3248ad9b8909}{
\index{obuf@{obuf}!obuf_putuwll@{obuf\_\-putuwll}}
\index{obuf_putuwll@{obuf\_\-putuwll}!obuf@{obuf}}
\subsubsection[obuf\_\-putuwll]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putuwll (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long long {\em data}, unsigned {\em width}, char {\em pad})}}
\label{group__obuf_gbd73e29249fddf85754a3248ad9b8909}


Write an unsigned long long integer as decimal to the {\tt obuf} with padding. \hypertarget{group__obuf_gf571b1aee85e5536ead2f139fe723a89}{
\index{obuf@{obuf}!obuf_putX@{obuf\_\-putX}}
\index{obuf_putX@{obuf\_\-putX}!obuf@{obuf}}
\subsubsection[obuf\_\-putX]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put\-X (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long {\em data})}}
\label{group__obuf_gf571b1aee85e5536ead2f139fe723a89}


Write an unsigned integer as (upper-case) hexadecimal to the {\tt obuf}. \hypertarget{group__obuf_g73b0e1bad7d14bce50996b0a79e3e60f}{
\index{obuf@{obuf}!obuf_putx@{obuf\_\-putx}}
\index{obuf_putx@{obuf\_\-putx}!obuf@{obuf}}
\subsubsection[obuf\_\-putx]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putx (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long {\em data})}}
\label{group__obuf_g73b0e1bad7d14bce50996b0a79e3e60f}


Write an unsigned integer as (lower-case) hexadecimal to the {\tt obuf}. \hypertarget{group__obuf_g2991868a52edf6fffa2ea17f5f8fee93}{
\index{obuf@{obuf}!obuf_putXll@{obuf\_\-putXll}}
\index{obuf_putXll@{obuf\_\-putXll}!obuf@{obuf}}
\subsubsection[obuf\_\-putXll]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put\-Xll (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long long {\em data})}}
\label{group__obuf_g2991868a52edf6fffa2ea17f5f8fee93}


Write an unsigned long long integer as (upper-case) hexadecimal to the {\tt obuf}. \hypertarget{group__obuf_ge0ed6f7cf0658c006863ace5c2716a79}{
\index{obuf@{obuf}!obuf_putxll@{obuf\_\-putxll}}
\index{obuf_putxll@{obuf\_\-putxll}!obuf@{obuf}}
\subsubsection[obuf\_\-putxll]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putxll (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long long {\em data})}}
\label{group__obuf_ge0ed6f7cf0658c006863ace5c2716a79}


Write an unsigned long long integer as (lower-case) hexadecimal to the {\tt obuf}. \hypertarget{group__obuf_g4349ac8d9999d042abd3e885a96b42e0}{
\index{obuf@{obuf}!obuf_putXw@{obuf\_\-putXw}}
\index{obuf_putXw@{obuf\_\-putXw}!obuf@{obuf}}
\subsubsection[obuf\_\-putXw]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put\-Xw (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long {\em data}, unsigned {\em width}, char {\em pad})}}
\label{group__obuf_g4349ac8d9999d042abd3e885a96b42e0}


Write an unsigned integer as (upper-case) hexadecimal to the {\tt obuf} with padding. \hypertarget{group__obuf_g63bc25bd5decb5affccd967701181e02}{
\index{obuf@{obuf}!obuf_putxw@{obuf\_\-putxw}}
\index{obuf_putxw@{obuf\_\-putxw}!obuf@{obuf}}
\subsubsection[obuf\_\-putxw]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putxw (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long {\em data}, unsigned {\em width}, char {\em pad})}}
\label{group__obuf_g63bc25bd5decb5affccd967701181e02}


Write an unsigned integer as (lower-case) hexadecimal to the {\tt obuf} with padding. \hypertarget{group__obuf_g89141b7b75a203e1f2ba61a8396be456}{
\index{obuf@{obuf}!obuf_putXwll@{obuf\_\-putXwll}}
\index{obuf_putXwll@{obuf\_\-putXwll}!obuf@{obuf}}
\subsubsection[obuf\_\-putXwll]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-put\-Xwll (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long long {\em data}, unsigned {\em width}, char {\em pad})}}
\label{group__obuf_g89141b7b75a203e1f2ba61a8396be456}


Write an unsigned long long integer as (upper-case) hexadecimal to the {\tt obuf} with padding. \hypertarget{group__obuf_g34cdd4dc150b9ebeebbe6b4e63b16f1a}{
\index{obuf@{obuf}!obuf_putxwll@{obuf\_\-putxwll}}
\index{obuf_putxwll@{obuf\_\-putxwll}!obuf@{obuf}}
\subsubsection[obuf\_\-putxwll]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-putxwll (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned long long {\em data}, unsigned {\em width}, char {\em pad})}}
\label{group__obuf_g34cdd4dc150b9ebeebbe6b4e63b16f1a}


Write an unsigned long long integer as (lower-case) hexadecimal to the {\tt obuf} with padding. \hypertarget{group__obuf_g2f5fa6c89c5d58023125710fa42285f4}{
\index{obuf@{obuf}!obuf_seek@{obuf\_\-seek}}
\index{obuf_seek@{obuf\_\-seek}!obuf@{obuf}}
\subsubsection[obuf\_\-seek]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-seek (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, unsigned {\em offset})}}
\label{group__obuf_g2f5fa6c89c5d58023125710fa42285f4}


Set the effective write position. \hypertarget{group__obuf_gbef86026d605262194142e28a3e192a4}{
\index{obuf@{obuf}!obuf_sign_pad@{obuf\_\-sign\_\-pad}}
\index{obuf_sign_pad@{obuf\_\-sign\_\-pad}!obuf@{obuf}}
\subsubsection[obuf\_\-sign\_\-pad]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-sign\_\-pad (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, int {\em sign}, unsigned {\em width}, char {\em pad})}}
\label{group__obuf_gbef86026d605262194142e28a3e192a4}


Pad the output with {\tt width} instances of the single character {\tt ch}, preceded by an optional negative sign at an appropriate place.

If the pad character is {\tt '0'} then any negative sign is placed as the first character, followed by padding. Otherwise, it is preceded by the padding. \hypertarget{group__obuf_g926e867fc325f0b221ce507d6a6285e4}{
\index{obuf@{obuf}!obuf_sync@{obuf\_\-sync}}
\index{obuf_sync@{obuf\_\-sync}!obuf@{obuf}}
\subsubsection[obuf\_\-sync]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-sync (\hyperlink{structobuf}{obuf} $\ast$ {\em out})}}
\label{group__obuf_g926e867fc325f0b221ce507d6a6285e4}


Flush the {\tt obuf} and then {\tt fsync} the file descriptor. \hypertarget{group__obuf_g03421ac22a31290e1e94462257b13781}{
\index{obuf@{obuf}!obuf_write@{obuf\_\-write}}
\index{obuf_write@{obuf\_\-write}!obuf@{obuf}}
\subsubsection[obuf\_\-write]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-write (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em data}, unsigned {\em datalen})}}
\label{group__obuf_g03421ac22a31290e1e94462257b13781}


Write a block of data to the {\tt obuf} \hypertarget{group__obuf_g165f549a8931c793af8aef1db88a64d4}{
\index{obuf@{obuf}!obuf_write_large@{obuf\_\-write\_\-large}}
\index{obuf_write_large@{obuf\_\-write\_\-large}!obuf@{obuf}}
\subsubsection[obuf\_\-write\_\-large]{\setlength{\rightskip}{0pt plus 5cm}int obuf\_\-write\_\-large (\hyperlink{structobuf}{obuf} $\ast$ {\em out}, const char $\ast$ {\em data}, unsigned {\em datalen})}}
\label{group__obuf_g165f549a8931c793af8aef1db88a64d4}


Write a large block of data to the {\tt obuf}, avoiding copying. 

\subsection{Variable Documentation}
\hypertarget{group__obuf_gfa9e5277c3780b0832a2a278eef7c59e}{
\index{obuf@{obuf}!errbuf@{errbuf}}
\index{errbuf@{errbuf}!obuf@{obuf}}
\subsubsection[errbuf]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{structobuf}{obuf} \hyperlink{group__obuf_gfa9e5277c3780b0832a2a278eef7c59e}{errbuf}}}
\label{group__obuf_gfa9e5277c3780b0832a2a278eef7c59e}


Output buffer for {\tt stderr} \hypertarget{group__obuf_g7786baf4fe0e6d14e304536eb40d6354}{
\index{obuf@{obuf}!outbuf@{outbuf}}
\index{outbuf@{outbuf}!obuf@{obuf}}
\subsubsection[outbuf]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{structobuf}{obuf} \hyperlink{group__obuf_g7786baf4fe0e6d14e304536eb40d6354}{outbuf}}}
\label{group__obuf_g7786baf4fe0e6d14e304536eb40d6354}


Output buffer for {\tt stdout} \begin{Desc}
\item[Examples: ]\par
\hyperlink{adt_2ghash__test_8c-example}{adt/ghash\_\-test.c}, \hyperlink{adt_2gqueue__test_8c-example}{adt/gqueue\_\-test.c}, and \hyperlink{adt_2gstack__test_8c-example}{adt/gstack\_\-test.c}.\end{Desc}
