SYNTAX

       #include <stralloc.h>

       int stralloc_ready(&sa,len);
       int stralloc_readyplus(&sa,len);

       int stralloc_copy(&sa,&sa2);
       int stralloc_copys(&sa,buf);
       int stralloc_copyb(&sa,buf,len);

       int stralloc_cat(&sa,&sa2);
       int stralloc_cats(&sa,buf);
       int stralloc_catb(&sa,buf,len);

       int stralloc_append(&sa,buf);
       int stralloc_0(&sa);

       int stralloc_starts(&sa,buf);

       stralloc sa = {0};
       stralloc sa2 = {0};
       unsigned int len;
       char *buf;


DESCRIPTION

       A  stralloc  variable  holds  a  string in dynamically allocated space.
       String length is limited only by memory.   String  contents  are  unre-
       stricted.

       The  stralloc  structure has three components: sa.s is a pointer to the
       string, or 0 if it is not allocated; sa.len is the number of  bytes  in
       the  string,  if it is allocated; sa.a is the number of bytes allocated
       for the string, if it is allocated.  A stralloc variable should be ini-
       tialized to {0}, meaning unallocated.

       stralloc_ready  makes  sure  that sa has enough space allocated for len
       characters.  It allocates extra space if necessary.

       stralloc_readyplus makes sure that sa has enough  space  allocated  for
       len  characters  more  than  its current length.  If sa is unallocated,
       stralloc_readyplus is the same as stralloc_ready.

       stralloc_copy copies sa2 to sa, allocating space  if  necessary.   Here
       sa2 is an allocated stralloc variable.

       stralloc_copys copies a 0-terminated string, buf, to sa, without the 0.

       stralloc_copyb copies len characters from buf to sa.

       stralloc_cat appends sa2 to sa, allocating space if necessary.   If  sa
       is unallocated, stralloc_cat is the same as stralloc_copy.

       guarantees that sa is allocated.


SEE ALSO

       alloc(3), error(3)



                                                                   stralloc(3)

Man(1) output converted with man2html