libcurl --libcurl

–libcurl

우리는 사용자가 먼저 curl 명령줄 도구로 수행하려는 전송을 시도할 것을 적극 권장하며, 대략 원하는 대로 작동하면 --libcurl [filename] 옵션을 명령줄에 추가하고 다시 다음을 실행합니다.

--libcurl 명령줄 옵션은 제공된 파일 이름으로 C 프로그램을 생성합니다. C 프로그램은 libcurl을 사용하여 방금 curl 명령줄 도구에서 수행한 전송을 실행하는 응용 프로그램입니다. 몇 가지 예외가 있고 항상 100% 일치하는 것은 아니지만 원하는 libcurl 옵션과 사용할 수 있는 libcurl 옵션 및 제공할 추가 인수에 대한 훌륭한 영감 소스 역할을 할 수 있습니다.

--libcurl -과 같이 파일 이름을 단일 대시로 지정하면 파일 대신 stdout에 프로그램이 작성됩니다.

예를 들어 http://example.com을 가져오는 명령을 실행합니다.

1
curl http://example.com --libcurl example.c

이렇게 하면 현재 디렉토리에 다음과 유사한 example.c가 생성됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/********* Sample code generated by the curl command-line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>

int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;

hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_URL, "http://example.com");
curl_easy_setopt(hnd, CURLOPT_NOPROGRESS, 1L);
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.45.0");
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
curl_easy_setopt(hnd, CURLOPT_SSH_KNOWNHOSTS, "/home/daniel/.ssh/known_hosts");
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);

/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.

CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer

*/

ret = curl_easy_perform(hnd);

curl_easy_cleanup(hnd);
hnd = NULL;

return (int)ret;
}
/**** End of sample code ****/
공유하기