Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
STRING_FP(3)		    Library Functions Manual		  STRING_FP(3)

NAME
       string_buf_input,	 string_buf_output,	   string_buf_content,
       string_buf_length -- string buffer streams

LIBRARY
       PDEL Library (libpdel, -lpdel)

SYNOPSIS
       #include	<sys/types.h>
       #include	<stdio.h>
       #include	<pdel/io/string_fp.h>

       FILE *
       string_buf_input(const void *buf, size_t	len, int copy);

       FILE *
       string_buf_output(const void *mtype);

       char *
       string_buf_content(FILE *fp, int	reset);

       int
       string_buf_length(FILE *fp);

DESCRIPTION
       These functions allow string buffers to be read and written as streams.

       string_buf_input() creates a  read-only	stream	that  reads  from  the
       buffer  pointed	to by buf having length	len.  If copy is non-zero, the
       contents	of the buffer are copied and therefore buf doesn't need	to re-
       main valid while	the stream is open.  Otherwise,	the data pointed to by
       buf is not copied and must remain  valid	 while	the  stream  is	 open.
       fclose(3) should	be used	to close the stream.

       string_buf_output() creates a write-only	stream that writes into	an in-
       ternal  buffer  that  grows  dynamically.   fclose(3) should be used to
       close the stream; this also frees the  internal	buffer.	  The  current
       buffer length is	returned by string_buf_length().

       string_buf_content()  returns  the contents of the internal buffer.  As
       with string_buf_length(), the fp	argument must be a stream  created  by
       string_buf_output().   If  reset	 is zero, then the internal buffer re-
       mains valid and the returned pointer should be treated as read-only and
       not be freed; it	also becomes invalid with the next  operation  on  the
       stream.	 If  reset  is	non-zero, the current buffer contents are "de-
       tached" and returned by string_buf_content(), and a new,	empty internal
       buffer is created; in this case,	the caller is responsible for  eventu-
       ally  freeing the returned buffer, which	is allocated with typed_mem(3)
       type mtype, and its contents remain valid until then.

       In either case, the data	returned by string_buf_content() is guaranteed
       to have one additional '\0' byte	appended.   Therefore,	it  is	always
       safe  to	 treat	this  pointer as a normal C string.  However, any '\0'
       bytes previously	written	to the stream will cause this string to	appear
       truncated.

RETURN VALUES
       string_buf_input(), string_buf_output(),	and  string_buf_content()  re-
       turn NULL to indicate an	error, with errno set appropriately.

       Even  if	 string_buf_content() returns NULL, the	stream will still need
       to be closed.

IMPLEMENTATION NOTES
       string_buf_content() and	string_buf_length() attempt to verify that the
       supplied	stream was indeed created by string_buf_output().  If they de-
       tect otherwise, an immediate assertion failure is generated.

SEE ALSO
       base64(3), filter(3), fopen(3), libpdel(3), typed_mem(3)

HISTORY
       The   PDEL   library   was   developed	at   Packet    Design,	  LLC.
       http://www.packetdesign.com/

AUTHORS
       Archie Cobbs <archie@freebsd.org>

FreeBSD	ports 15.0		April 22, 2002			  STRING_FP(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=string_fp&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help