libcurl cookies issue

I have a problem with my code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <time.h>

#include <curl.h>

static void print_cookies(CURL *curl) // funkcja otrzymuje uchwyt sesji

CURLcode res; // utworzenie zmiennej res
struct curl_slist *cookies=NULL; //utworzenie struktury
struct curl_slist *nc; //utworzenie drugiej struktury
int i; //pomocnicza zmienna

printf("Cookies, curl knows:\n"); //chwali sie ze otrzymał nastepujace cookies
res = curl_easy_getinfo(curl, CURLINFO_COOKIELIST, &cookies); //wyciaga informacje o cookies i zrzuca ją do struktury
if (res != CURLE_OK) {//jesli ok
fprintf(stderr, "Curl curl_easy_getinfo failed: %s\n", curl_easy_strerror(res));//jesli blad wysyła tą inforamcje
exit(1);//jesli blad konczy funkcje
nc = cookies, i = 1;
while (nc) {//dopoki nc nie jest 0 czyli dopoki cookies istnieje
printf("[%d]: %s\n", i, nc->data);
nc = nc->next;
if (i == 1) {
curl_slist_free_all(cookies);// koniec listy

CURL *curl;
CURLcode res;

curl_global_init(CURL_GLOBAL_ALL);//tworzy sesje
curl = curl_easy_init();
if (curl) {

curl_easy_setopt(curl, CURLOPT_URL, "");//ustala uchwyt sesji
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);//zeby cookies pobierało
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, ""); /* just to start the cookie engine */
res = curl_easy_perform(curl);// wychwytuje błędy sesji
if (res != CURLE_OK) {
fprintf(stderr, "Curl perform failed: %s\n", curl_easy_strerror(res));
return 1;
fprintf(stderr, "prawidlowo rozpoczeto sesje");


printf("Erasing curl's knowledge of cookies!\n");
curl_easy_setopt(curl, CURLOPT_COOKIELIST, "ALL");

return 0;

what happen? I get the error code: a libcurl function was given a bad argument
I'm begginer and I want to begin a biggest program. Sorry for mistake, I still learn Enlish language.
Last edited on
Not a solution, but FYI your code works fine on my Debian Sid system.
curl-config --version
libcurl 7.31.0

Changed the url to "" and got:
Cookies, curl knows:
[1]:	TRUE	/	FALSE	1438478271	PREF	ID=0b457f4d880cea79:FF=0:TM=1375406271:LM=1375406271:S=VD0Bsrzx31VAxqIa
[2]:	TRUE	/	FALSE	1391217471	NID	67=KQbuNV81t8gaTusSJhudu57IFK84PbV7OwIA74aFhhHW_yx6DUYwzLaLN_0iherAyRq9d-zkX33xfjcE2G3r4T21Z7amoV11OVpHU_BTwoFYH1K-2NRxgjzhriVq_a-x
Erasing curl's knowledge of cookies!
* Connection #0 to host left intact
prawidlowo rozpoczeto sesje 
It's entire code, that you have in console? i get another.
* About to connect() to port 80
* Trying * connected
* Connected to ( port 80
> GET / HTTP/1.1
Accept: */*

< HTTP/1.1 302 Found
< Location:
< Cache-Control: private
< Content-Type: text/html; charset=UTF-8
* Added cookie PREF="ID=380d3b08e23eeebc:FF=0:TM=1375437202:LM=1375437202:S=ex0x
XBbVjaBIr1Uk" for domain, path /, expire 1438512802
< Set-Cookie: PREF=ID=380d3b08e23eeebc:FF=0:TM=1375437202:LM=1375437202:S=ex0xXB
bVjaBIr1Uk; expires=Sun, 02-Aug-2015 09:53:22 GMT; path=/;
* Added cookie NID="67=lAWE3VCmydWgBsR3Mp7GYVQkv2kVUAPEbyVeoxwNV8RzyfP0kvRHEgeSx
9AosaKqdIKKjcnV2T_3utNB0wlr-uz-_iPOUYp1-JVtjhANtlzXm1OrYYz2_w-xp_bA9ZFc" for dom
ain, path /, expire 1391248402
< Set-Cookie: NID=67=lAWE3VCmydWgBsR3Mp7GYVQkv2kVUAPEbyVeoxwNV8RzyfP0kvRHEgeSx9A
osaKqdIKKjcnV2T_3utNB0wlr-uz-_iPOUYp1-JVtjhANtlzXm1OrYYz2_w-xp_bA9ZFc; expires=S
at, 01-Feb-2014 09:53:22 GMT; path=/;; HttpOnly
< P3P: CP="This is not a P3P policy! See
bin/ for more info."
< Date: Fri, 02 Aug 2013 09:53:22 GMT
< Server: gws
< Content-Length: 228
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<H1>302 Moved</H1>
The document has moved
<A HREF="">here</A>.
* Connection #0 to host left intact
prawidlowo rozpoczeto sesjeCookies, curl knows:
Curl curl_easy_getinfo failed: a libcurl function was given a bad argument
You are receiving a redirect. Maybe setting the "CURLOPT_FOLLOWLOCATION" option to true will help.

curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
I tried it. Doesn't help me,

You claim that program work valid? please give me program name, which you use? which OS is it?
Last edited on
Can you give me link with this system and program, which you use to compiling
I compiled the exact code that you posted above, with the exception of the addition of the "CURLOPT_FOLLOWLOCATION" line on the following OS's and it works fine.

$ lsb_release -d
Description: Debian GNU/Linux 7.1 (wheezy)

$ curl-config --version
libcurl 7.26.0

$ g++ -v
. . .
gcc version 4.7.2 (Debian 4.7.2-5)

Debian GNU/Linux unstable (sid)
libcurl 7.31.0
gcc version 4.7.3 (Debian 4.7.3-6)

FreeBsd 9.1 RELEASE
libcurl 7.24.0
gcc version 4.2.1

Can you give me link with this system and program, which you use to compiling
Topic archived. No new replies allowed.