2017-03-14 6 views
0

내가 curl 명령에 놀아 난 다음 발견 할 때 LIB 컬 코드를 해당보고되었다 :libcurl 코드를 보면 curl connect-timeout 및 max-time 옵션 값이 변경됩니다. 왜 그리고 무엇을 나타내는가?

내 명령을

curl --max-time 1 --connect-timeout 1 -H "User-Agent: ikandaswamy" https://api.github.com/users/ikandaswamy/repos --libcurl newtext 

를 newText

curl_easy_setopt(hnd, CURLOPT_TIMEOUT_MS, 1000L); 
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.43.0"); 
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, slist1); 
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L); 
curl_easy_setopt(hnd, CURLOPT_CONNECTTIMEOUT_MS, 1000L); 

위에 표시되는 경우, CURLOPT_TIMEOUT_MS 및 CURLOPT_CONNECTTIMEOUT_MS는 모두 1000 (long)입니다. 남자 컬에서 나는 타임 아웃이 초 단위라는 것을 알았다. 왜 1000으로 변환됩니까?

답변

0

옵션 이름의 접미사는 _MS입니다. 밀리 초를 의미하므로 1 초는 1000 밀리 초가됩니다 ...

덧붙여이 사실은 CURLOPT_TIMEOUT_MSCURLOPT_CONNECTTIMEOUT_MS 매뉴얼 페이지에도 기록되어 있습니다! --connect-timeout 옵션 초를 허용하면서

, 또한 2.347초 같은 초 분획하고 밀리 초 옵션 버전을 사용 libcurl에에 그 정밀도를 전달하기 위해 포함하는 십진수 숫자로 지정 초를 받아 들인다.

+0

감사합니다. 기본적으로 CURLOPT_TIMEOUT 대신 _MS를 사용하는 이유가 있습니까? 설명서에 시간 초과가 초라고되어 있기 때문입니다. – kbinstance

+0

무엇을위한 문서입니까? CURLOPT_TIMEOUT 및 CURLOPT_TIMEOUT_MS는 서로 다른 입력을받는 두 가지 옵션입니다. 첫 번째 1 초, 후자의 밀리 초. 다시, 문서화 된대로. –

+0

옵션 --connect-timeout에 대한 설명 --connect-timeout SECONDS 연결에 허용되는 최대 시간. 그래서 생성 된 lib 컬이 코드에서 CURLOPT_TIMEOUT을 사용할 것으로 기대합니다. 그러나 대신 _MS를 사용했습니다. 이유가 궁금 해서요. – kbinstance