Provided by:
manpages-es_1.55-10_all 
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)