.\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) Daniel Stenberg, , et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" * SPDX-License-Identifier: curl .\" * .\" ************************************************************************** .TH curl_easy_option_next 3 "27 Aug 2020" "libcurl 7.73.0" "libcurl Manual" .SH NAME curl_easy_option_next - iterate over easy setopt options .SH SYNOPSIS .nf #include typedef enum { CURLOT_LONG, /* long (a range of values) */ CURLOT_VALUES, /* (a defined set or bitmask) */ CURLOT_OFF_T, /* curl_off_t (a range of values) */ CURLOT_OBJECT, /* pointer (void *) */ CURLOT_STRING, /* (char * to null-terminated buffer) */ CURLOT_SLIST, /* (struct curl_slist *) */ CURLOT_CBPTR, /* (void * passed as-is to a callback) */ CURLOT_BLOB, /* blob (struct curl_blob *) */ CURLOT_FUNCTION /* function pointer */ } curl_easytype; /* The CURLOPTTYPE_* id ranges can still be used to figure out what type/size to use for curl_easy_setopt() for the given id */ struct curl_easyoption { const char *name; CURLoption id; curl_easytype type; unsigned int flags; }; const struct curl_easyoption * curl_easy_option_next(const struct curl_easyoption *prev); .fi .SH DESCRIPTION This function returns a pointer to the first or the next \fIcurl_easyoption\fP struct, providing an ability to iterate over all known options for \fIcurl_easy_setopt(3)\fP in this instance of libcurl. Pass a \fBNULL\fP argument as \fBprev\fP to get the first option returned, or pass in the current option to get the next one returned. If there is no more option to return, \fIcurl_easy_option_next(3)\fP returns NULL. The options returned by this functions are the ones known to this libcurl and information about what argument type they want. If the \fBCURLOT_FLAG_ALIAS\fP bit is set in the flags field, it means the name is provided for backwards compatibility as an alias. .SH EXAMPLE .nf /* iterate over all available options */ const struct curl_easyoption *opt; opt = curl_easy_option_by_next(NULL); while(opt) { printf("Name: %s\\n", opt->name); opt = curl_easy_option_by_next(opt); } .fi .SH AVAILABILITY This function was added in libcurl 7.73.0 .SH RETURN VALUE A pointer to the \fIcurl_easyoption\fP struct for the next option or NULL if no more options. .SH "SEE ALSO" .BR curl_easy_option_by_name "(3)," curl_easy_option_by_id "(3)," .BR curl_easy_setopt "(3),"