CURLOPT_COOKIEJAR(3) Introduction to Library Functions CURLOPT_COOKIEJAR(3)

NAME


CURLOPT_COOKIEJAR - filename to store cookies to

SYNOPSIS


#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIEJAR, char *filename);

DESCRIPTION


Pass a filename as a char *, null-terminated. This makes libcurl
write all internally known cookies to the specified file when
curl_easy_cleanup(3) is called. If no cookies are kept in memory at
that time, no file is created. Specify "-" as filename to instead
have the cookies written to stdout. Using this option also enables
cookies for this session, so if you for example follow a redirect it
makes matching cookies get sent accordingly.

Note that libcurl does not read any cookies from the cookie jar
specified with this option. To read cookies from a file, use
CURLOPT_COOKIEFILE(3).

If the cookie jar file cannot be created or written to (when the
curl_easy_cleanup(3) is called), libcurl does not and cannot report
an error for this. Using CURLOPT_VERBOSE(3) or
CURLOPT_DEBUGFUNCTION(3) displays a warning, but that is the only
visible feedback you get about this possibly lethal situation.

Cookies are imported in the Set-Cookie format without a domain name
are not exported by this option.

The application does not have to keep the string around after setting
this option.

Using this option multiple times makes the last set string override
the previous ones. Set it to NULL to disable its use again.

SECURITY CONCERNS


libcurl cannot fully protect against attacks where an attacker has
write access to the same directory where it is directed to save
files. This is particularly sensitive if you save files using
elevated privileges.

DEFAULT


NULL

PROTOCOLS


This functionality affects http only

EXAMPLE


int main(void)
{
CURL *curl = curl_easy_init();
if(curl) {
CURLcode res;
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin");

/* export cookies to this file when closing the handle */
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "/tmp/cookies.txt");

res = curl_easy_perform(curl);

/* close the handle, write the cookies */
curl_easy_cleanup(curl);
}
}

AVAILABILITY


Added in curl 7.9

RETURN VALUE


curl_easy_setopt(3) returns a CURLcode indicating success or error.

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

SEE ALSO


CURLOPT_COOKIE(3), CURLOPT_COOKIEFILE(3), CURLOPT_COOKIELIST(3)

libcurl 2025-02-25 CURLOPT_COOKIEJAR(3)

tribblix@gmail.com :: GitHub :: Privacy