cURL
Your ad here would be seen by 100,000 unique vistors every month Haxx ad
libcurl
Automatically get a mirror near you







COMPARE PRICES:
Digital cameras, MP3 Players, Camcorders, Mobile phones, PDA, Computers, Electronics LCD monitors, Printers, Notebook, DVD Players, Motherboards, TV, ipod, Processors. See all...

Shopping cart software, Online file storage and sharing, Online photo storage and sharing, Online store builder, Online contact management, Online email marketing, Online project management, Online issue tracking, Online notepad, Online publishing

SourceForge.net Logo

cURL > libcurl > C Interface Overview

Using The libcurl C Interface

There's the tutorial to start with, read the tutorial to get a general in-depth grip of what libcurl programming is all about.

There are some example C source codes you can check out. They're not all-covering or even very extensive, but they might serve as a source of inspiration to start hacking.

Windows developers using the Microsoft Visual Studio, might enjoy Rosso Salmanzadeh's excellent Using libcurl in Visual Studio [PDF] guide.

Easy or Multi

The easy interface is a synchronous, efficient, quickly used and... yes, easy interface for file transfers. Numerous applications have been built using this.

The multi interface is the asynchronous brother in the family and it also offers multiple transfers using a single thread and more. Get a grip of how to work with it in the multi interface overview.

The Easy interface

When using libcurl you init your easy-session and get a handle, which you use as input to the following interface functions you use.

You continue by setting all the options you want in the upcoming transfer, most important among them is the URL itself. You might want to set some callbacks as well that will be called from the library when data is available etc.

When all is setup, you tell libcurl to perform the transfer. It will then do the entire operation and won't return until it is done or failed.

After the performance is made, you may get information about the transfer and then you cleanup the easy-session's handle and libcurl is entire off the hook!

curl_easy_init()
curl_easy_cleanup()
curl_easy_setopt()
curl_easy_perform()
curl_easy_getinfo()

While the above functions are the main functions to use in the easy interface, there is a series of other helpful functions too. They are:

curl_version() returns a pointer to the libcurl version string
curl_getdate() converts a date string to time_t
curl_getenv() portable environment variable reader
curl_formadd() build multipart form-data posts
curl_formfree() free a previously built form POST
curl_slist_append() builds a linked list
curl_slist_free_all() frees a whole curl_slist as made with curl_slist_append()
curl_escape() URL encodes a string
curl_unescape() URL decodes a string
curl_strequal() compare strings case insensitive
curl_mprintf() portable *printf() functions

All man pages are included in every release archive, in three different formats: man page, HTML and pdf.

donate! Page updated September 07, 2007.
web site info