CURLINFO_SCHEME(3)

πŸ’– CURLINFO_SCHEME(3) πŸ’–

okay so bestie, this is the CURLINFO_SCHEME page from the Library Functions Manual, and it's literally the glow-up guide for finding out which URL scheme your transfer used ✨. No cap, it's a little libcurl info-getter and it ate.


✨ NAME ✨

CURLINFO_SCHEME β€” URL scheme used in transfer πŸ’…


🌸 SYNOPSIS 🌸

#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SCHEME, char **scheme);

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so picture this: you pass a pointer to a char pointer, and it receives the pointer to a null-terminated string holding the URL scheme used for the most recent transfer done with this CURL handle. iconic. 🫢

The scheme might also sometimes be referred to as the protocol β€” iykyk, same vibe, different word.

bestie, listen: the scheme pointer is NULL or points to private memory. You must not free it. 😭 The memory gets freed automatically when you call curl_easy_cleanup(3) on the corresponding curl handle. So don't be out here doing manual cleanup on borrowed memory, fr fr.

The returned scheme might be upper or lowercase. Do comparisons case insensitively. periodt. πŸ’…


🌈 PROTOCOLS 🌈

This functionality affects all supported protocols ✨.


πŸŽ€ EXAMPLE πŸŽ€

like, here's the whole cute little main character moment:

int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode result;
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
    result = curl_easy_perform(curl);
    if(result == CURLE_OK) {
      char *scheme = NULL;
      curl_easy_getinfo(curl, CURLINFO_SCHEME, &scheme);
      if(scheme)
        printf("scheme: %s\n", scheme); /* scheme: HTTP */
    }
    curl_easy_cleanup(curl);
  }
}

⭐ AVAILABILITY ⭐

Added in curl 7.52.0 πŸŽ‰.


πŸ’œ RETURN VALUE πŸ’œ

curl_easy_getinfo(3) returns a CURLcode indicating success or error. slay.

CURLE_OK (0) means everything was OK, non-zero means an error occurred, see libcurl-errors(3) πŸ‘€.


πŸ¦‹ SEE ALSO πŸ¦‹


mwah πŸ’‹ this iconic page is from libcurl, dated 2026-10-12, and it's literally CURLINFO_SCHEME(3) β€” periodt πŸŽ€βœ¨

πŸ“¦ where this page comes from