Provided by: manpages-es_1.55-10_all bug

NOMBRE

       argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract,
       argz_insert, argz_next, argz_replace, argz_stringify - funciones para manejar una lista argz

SINOPSIS

       #include <argz.h>

       error_t
       argz_add(char **argz, size_t *argz_len, const char *str);

       error_t
       argz_add_sep(char **argz, size_t *argz_len,
                    const char *str, int delim);

       error_t
       argz_append(char **argz, size_t *argz_len,
                    const char *buf, size_t buf_len);

       size_t
       argz_count(const char *argz, size_t argz_len);

       error_t
       argz_create(char * const argv[], char **argz,
                    size_t *argz_len);

       error_t
       argz_create_sep(const char *str, int sep, char **argz,
                    size_t *argz_len);

       error_t
       argz_delete(char **argz, size_t *argz_len, char *entry);

       void
       argz_extract(char *argz, size_t argz_len, char  **argv);

       error_t
       argz_insert (char **argz, size_t *argz_len, char *before,
                    const char *entry);

       char *
       argz_next(char *argz, size_t argz_len, const char *entry);

       error_t
       argz_replace(char **argz, size_t *argz_len, const char *str,
                    const char *with, unsigned int *replace_count);

       void
       argz_stringify(char *argz, size_t len, int sep);

DESCRIPCIÓN

       Estas funciones son específicas de glibc.

       Un vector argz es un puntero a un buffer de caracteres junto con una longitud.  Se pretende que el buffer
       de caracteres sea interpretado como un array de cadenas, donde las cadenas están separadas por bytes NUL.
       Si la longitud es distinta de cero, el último byte del buffer debe ser NUL.

       Estas  funciones  se  ofrecen  para  manejar  vectores  argz.   El  par (NULL,0) es un vector argz, y, al
       contrario, los vectores argz de longitud 0 deben tener un puntero NULL.  La reserva  de  memoria  de  los
       vectores  argz  no  vacíos  se  realiza  mediante  malloc(3), así free(3) puede utilizarse para liberarla
       después.

       argz_add() añade la cadena str al final del array *argz, y actualiza *argz y *argz_len.

       argz_add_sep() es similar, pero separa la cadena str en  dos  subcadenas  separadas  por  el  delimitador
       delim.  Por ejemplo, se puede utilizar está función en una ruta de búsqueda Unix con el delimitador ':'.

       argz_append()  añade  el  vector  argz  (buf,buf_len)  después  de  (*argz,*argz_len) y actualiza *argz y
       *argz_len.  (Así, *argz_len se incrementará en buf_len.)

       argz_count() cuenta el número de cadenas, esto es, el número de bytes NUL, en (argz,argz_len).

       argz_create() convierte un vector de argumentos al estilo Unix argv, terminado  en  (char  *)  0,  en  un
       vector argz (*argz,*argz_len).

       argz_create_sep()  convierte  la  cadena  terminada  en  NUL  str  en  un  vector  argz (*argz,*argz_len)
       partiéndola en cada ocurrencia del separador sep.

       argz_delete() elimina la subcadena apuntada por entry del vector argz (*argz,*argz_len) y actualiza *argz
       y *argz_len.

       argz_extract() es la contraria de argz_create().  Toma un vector argz (argz,argz_len) y rellena el  array
       que  comienza  en argv con punteros a las subcadenas, añadiendo un NULL al final, formando un vector argv
       al estilo Unix.  El array argv debe tener suficiente espacio para argz_count(argz,argz_len) + 1 punteros.

       argz_insert() es la opuesta de argz_delete().  Inserta el argumento entry en la  posición  before  en  el
       vector  argz (*argz,*argz_len) y actualiza *argz y *argz_len.  Si before es NULL, entry será insertada al
       final.

       argz_next() es una función para recorrer el vector argz.  Si  entry  es  NULL,  se  devuelve  la  primera
       entrada. En otro caso, se devuelve la siguiente entrada. Devuelve NULL si no quedan más entradas.

       argz_replace()  reemplaza  cada  ocurrencia  de  str  con  with,  reasignando  argz  si  es necesario. Si
       replace_count es distinto de NULL, *replace_count se incrementará con el número de reemplazos.

       argz_stringify() es la opuesta de argz_create_sep().  Transforma el vector  argz  en  una  cadena  normal
       reemplazando todos los NULs excepto el último por sep.

VALOR DEVUELTO

       Todas las funciones argz que realizan reserva de memoria devuelven un tipo error_t, devolviendo 0 en caso
       de éxito, y ENOMEM si ocurre un error de asignación de memoria.

FALLOS

       Los vectores argz sin un NUL final pueden provocar Violaciones de Segmento.

OBSERVACIONES

       Estas funciones son extensiones de GNU. Manejar con cuidado.

VÉASE TAMBIÉN

       envz(3)

                                                                                                     ARGZ_ADD(3)