---
name: "curl_easy_option_next"
section: "3"
platform: "macos"
package: "curl"
version: "166.0.0.0.1"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/curl_easy_option_next"
---

# curl\_easy\_option\_next(3)

iterate over easy setopt options

## NAME

curl\_easy\_option\_next - iterate over easy setopt options

## SYNOPSIS

```
#include <curl/curl.h>
const struct curl_easyoption *
curl_easy_option_next(const struct curl_easyoption *prev);
```

## DESCRIPTION

This function returns a pointer to the first or the next *curl\_easyoption* struct, providing an ability to iterate over all known options for *[curl\_easy\_setopt(3)](/curl_easy_setopt/3.md)* in this instance of libcurl.

Pass a **NULL** argument as **prev** 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, *[curl\_easy\_option\_next(3)](/curl_easy_option_next/3.md)* 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 **CURLOT\_FLAG\_ALIAS** bit is set in the flags field, it means the name is provided for backwards compatibility as an alias.

## struct

```
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;
};
```

## EXAMPLE

```
int main(void)
{
  /* iterate over all available options */
  const struct curl_easyoption *opt;
  opt = curl_easy_option_next(NULL);
  while(opt) {
    printf("Name: %s\n", opt->name);
    opt = curl_easy_option_next(opt);
  }
}
```

## AVAILABILITY

This function was added in libcurl 7.73.0

## RETURN VALUE

A pointer to the *curl\_easyoption* struct for the next option or NULL if no more options.

## SEE ALSO

[**curl\_easy\_option\_by\_id**(3)](/curl_easy_option_by_id/3.md), [**curl\_easy\_option\_by\_name**(3)](/curl_easy_option_by_name/3.md), [**curl\_easy\_setopt**(3)](/curl_easy_setopt/3.md)
