Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <stdio.h>
00028 #include <pthread.h>
00029 #include <curl/curl.h>
00030
00031 #define NUMT 4
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 const char * const urls[NUMT]= {
00043 "https://curl.haxx.se/",
00044 "ftp://cool.haxx.se/",
00045 "http://www.contactor.se/",
00046 "www.haxx.se"
00047 };
00048
00049 static void *pull_one_url(void *url)
00050 {
00051 CURL *curl;
00052
00053 curl = curl_easy_init();
00054 curl_easy_setopt(curl, CURLOPT_URL, url);
00055 curl_easy_perform(curl);
00056 curl_easy_cleanup(curl);
00057
00058 return NULL;
00059 }
00060
00061
00062
00063
00064
00065
00066
00067
00068 int main(int argc, char **argv)
00069 {
00070 pthread_t tid[NUMT];
00071 int i;
00072 int error;
00073
00074
00075 curl_global_init(CURL_GLOBAL_ALL);
00076
00077 for(i=0; i< NUMT; i++) {
00078 error = pthread_create(&tid[i],
00079 NULL,
00080 pull_one_url,
00081 (void *)urls[i]);
00082 if(0 != error)
00083 fprintf(stderr, "Couldn't run thread number %d, errno %d\n", i, error);
00084 else
00085 fprintf(stderr, "Thread %d, gets %s\n", i, urls[i]);
00086 }
00087
00088
00089 for(i=0; i< NUMT; i++) {
00090 error = pthread_join(tid[i], NULL);
00091 fprintf(stderr, "Thread %d terminated\n", i);
00092 }
00093
00094 return 0;
00095 }