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'ON

       Estas funciones son especificas 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 estan separadas por bytes
       NUL.  Si la longitud es distinta de cero, el  ultimo  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  vacios  se  realiza  mediante  malloc(3),  asi  free(3)  puede
       utilizarse para liberarla despues.

       argz_add()  anade  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
       esta funcion en una ruta de busqueda Unix con el delimitador ':'.

       argz_append()  anade  el   vector   argz   (buf,buf_len)   despues   de
       (*argz,*argz_len)  y  actualiza  *argz y *argz_len.  (Asi, *argz_len se
       incrementara en buf_len.)

       argz_count() cuenta el numero de cadenas, esto es, el numero  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)  partiendola  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, anadiendo 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 posicion before  en  el  vector  argz  (*argz,*argz_len)  y
       actualiza  *argz  y *argz_len.  Si before es NULL, entry sera insertada
       al final.

       argz_next() es una funcion 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 mas 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 incrementara con el numero 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
       ultimo por sep.

VALOR DEVUELTO

       Todas las funciones argz que realizan reserva de memoria  devuelven  un
       tipo  error_t,  devolviendo  0  en caso de exito, y ENOMEM si ocurre un
       error de asignacion 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'EASE TAMBI'EN

       envz(3)

                                                                   ARGZ_ADD(3)