argz_add_sep - Linux


argz_add_sep is a library function that appends a separator to an existing argz list. Argz lists are null-terminated arrays of character strings that are separated by spaces. They are commonly used to store arguments to a program.


#include <argz.h>

int argz_add_sep(char **destination, const char *source,
                size_t source_length, int separator, int contiguous);


  • destination: Pointer to destination argz list.
  • source: NULL-terminated string that will be added to the argz list.
  • source_length: Length of the source string.
  • separator: Separator character to be used. Defaults to ‘ ‘.
  • contiguous: Whether to make the argz list contiguous in memory. Defaults to 1.


Example 1: Appending a single string to an argz list:

char *argz[] = { "arg1", "arg2", NULL };
int err = argz_add_sep(argz, "arg3", -1, 0, 1);

Example 2: Appending a string with a custom separator:

char *argz[] = { "arg1", "arg2", NULL };
int err = argz_add_sep(argz, "arg3", -1, '|', 1);

Common Issues

  • Memory management: argz_add_sep() allocates memory for the destination argz list. It is the caller’s responsibility to free this memory.
  • Buffer overflow: If the source string is too long, it may overwrite adjacent memory. Ensure that the buffer is large enough to accommodate the source string plus the separator character.


argz_add_sep() can be used with other argz functions to manipulate argz lists. For example, it can be used with argz_next() to iterate over the argz list and with argz_delete() to remove entries from the list.

Related Commands

  • argz_create()
  • argz_append()
  • argz_insert()
  • argz_delete()