aboutsummaryrefslogtreecommitdiff
path: root/README.libcurl
diff options
context:
space:
mode:
Diffstat (limited to 'README.libcurl')
-rw-r--r--README.libcurl108
1 files changed, 0 insertions, 108 deletions
diff --git a/README.libcurl b/README.libcurl
deleted file mode 100644
index ccec76150..000000000
--- a/README.libcurl
+++ /dev/null
@@ -1,108 +0,0 @@
- _ _ _ _
- | (_) |__ ___ _ _ _ __| |
- | | | '_ \ / __| | | | '__| |
- | | | |_) | (__| |_| | | | |
- |_|_|_.__/ \___|\__,_|_| |_|
-
-
- How To Use Libcurl In Your Program:
- (by Ralph Beckmann <rabe@uni-paderborn.de>)
-
-NOTE: If you plan to use libcurl.a in Threads under Linux, do not use the old
-gcc-2.7.x because the function 'gethostbyname' seems not to be thread-safe,
-that is to say an unavoidable SEGMENTATION FAULT might occur.
-
-
-1. a) In a C-Program:
- #include "curl.h"
-
- b) In a C++-Program:
- extern "C" {
- #include "curl.h"
- }
-
-2. char *url="http://www.domain.com";
- curl_urlget (URGTAG_URL, url,
- URGTAG_FLAGS, CONF_NOPROGRESS,
- URGTAG_ERRORBUFFER, errorBuffer,
- URGTAG_WRITEFUNCTION, (size_t (*)(void *, int, int, FILE
-*))handle_data,
- URGTAG_TIMEOUT, 30, /* or anything You want */
- ...
- URGTAG_DONE);
-
-3. size_t handle_data (const void *ptr, size_t size, size_t nitems,
- FILE *stream)
- {
- (void)stream; /* stop complaining using g++ -Wall */
- if ((int)nitems <= 0) {
- return (size_t)0;
- }
- fprintf(stdout, (char *)ptr); /* or do anything else with it */
- return nitems;
- }
-
-4. Compile Your Program with -I$(CURL_DIR)/include
-
-5. Link Your Program together with $(CURL_DIR)/lib/libcurl.a
-
- Small Example of How To Use libcurl
-
-----------------------------------------------------------------------
-/* Full example that uses libcurl.a to fetch web pages. */
-/* curlthreads.c */
-/* - Test-Program by Ralph Beckmann for using curl in POSIX-Threads */
-/* Change *url1 and *url2 to textual long and slow non-FRAMESET websites! */
-/*
- 1. Compile with gcc or g++ as $(CC):
- $(CC) -c -Wall -pedantic curlthreads.c -I$(CURL_DIR)/include
-
- 2. Link with:
- - Linux:
- $(CC) -o curlthreads curlthreads.o $(CURL_DIR)/lib/libcurl.a -lpthread
--lm
- - Solaris:
- $(CC) -o curlthreads curlthreads.o $(CURL_DIR)/lib/libcurl.a -lpthread
--lm -lsocket -lnsl
-*/
-
-#include <pthread.h>
-#include <stdio.h>
-#ifdef __cplusplus
-extern "C" {
-#include "curl.h"
-}
-#else
-#include "curl.h"
-#endif
-
-size_t storedata (const void *ptr, size_t size, size_t nitems, FILE *stream) {
- (void)ptr; (void)stream; /* just to stop g++ -Wall complaining */
- fprintf(stdout, "Thread #%i reads %i Bytes.\n",
- (int)pthread_self(), (int)(nitems*size));
- return (nitems);
-}
-
-void *urlfetcher(void *url) {
- curl_urlget (URGTAG_URL, url,
- URGTAG_FLAGS, CONF_NOPROGRESS | CONF_FAILONERROR,
- URGTAG_WRITEFUNCTION, (size_t (*)(void *, int, int, FILE
-*))storedata,
- URGTAG_DONE);
- return NULL;
-}
-
-int main(void) {
- char *url1="www.sun.com";
- char *url2="www.microsoft.com";
-
- pthread_t thread_id1, thread_id2;
- pthread_create(&thread_id1, NULL, urlfetcher, (void *)url1);
- pthread_create(&thread_id2, NULL, urlfetcher, (void *)url2);
- pthread_join(thread_id1, NULL);
- pthread_join(thread_id2, NULL);
-
- fprintf(stdout, "Ready.\n");
-
- return 0;
-}