3 * gcc prop_array2.c -o prop_array2 -lprop -Wall -W -Wextra -ansi -pedantic
9 #include <prop/proplib.h>
11 int main(int argc
, char *argv
[])
15 prop_object_iterator_t pit
;
19 /* No effect in NetBSD, but increases portability */
22 /* Check argument count */
24 fprintf(stderr
, "Usage: %s <data.xml>\n", getprogname());
28 /* Read array contents from external XML file */
29 pa
= prop_array_internalize_from_file(argv
[1]);
31 errx(EXIT_FAILURE
, "prop_array_internalize_from_file()");
33 /* Skim through every item of the array */
34 for (i
= 0; i
< prop_array_count(pa
); i
++) {
35 s
= prop_string_cstring_nocopy(prop_array_get(pa
, i
));
40 * We will now iterate through the items of the array,
41 * but this time we will exploit a prop_array_iterator_t
43 pit
= prop_array_iterator(pa
);
45 prop_object_release(pa
);
46 errx(EXIT_FAILURE
, "prop_array_iterator()");
50 while((po
= prop_object_iterator_next(pit
)) != NULL
) {
51 s
= prop_string_cstring_nocopy(po
);
56 prop_object_release(pa
);
57 prop_object_iterator_release(pit
);