2016-06-10 4 views
-1

대량의 데이터가 포함 된 메일을 보낼 수 없습니다. 메일을 보내는 중 세그먼트 화 오류이 발생합니다. 검색 결과 CURL_MAX_WRITE_SIZE를 설정하면 문제가 해결 될 수 있지만 내 애플리케이션에서는 설정할 수 없음을 알게되었습니다. 나는 아래컬에서 CURL_MAX_WRITE_SIZE를 설정하는 방법은 무엇입니까?

#ifdef CURL_MAX_WRITE_SIZE 
#undef CURL_MAX_WRITE_SIZE 
#define CURL_MAX_WRITE_SIZE 131072 
#endif 

을 시도하고 콜백 함수는 사람이에 대한 해결 방법을 제안 해주십시오 수

size_t mail_payload_source(void *ptr, size_t size, size_t nmemb, void *userp){ 
struct mail_upload_status *upload_ctx = (struct mail_upload_status *)userp; 
const char *data; 
if((size == 0) || (nmemb == 0) || ((size*nmemb) < 1)) { 
    return 0; 
} 
data = mail_char_ary_of_pntrs[upload_ctx->lines_read]; 
if(data) { 
    size_t len = strlen(data); 
    memcpy(ptr, data, len); 
    upload_ctx->lines_read++; 
    return len; 
} 
return 0;} 

입니까?

+0

잠재 응답자가 당신을 도울 방법을 파악하기에 충분한 컨텍스트가 없습니다. 문제는 컬 (curl)과 어떤 관련이 있습니까? – Leon

+0

"res = curl_easy_perform (curl);"세그먼트 화 오류 발생 –

답변

0

CURL_MAX_WRITE_SIZE 값을 더 높은 값으로 설정하여 재구성하여 문제를 해결했습니다.

+0

그건 코드를 수정하는 완전히 잘못된 방법입니다 ... –

+0

그러면 좋은 방법을 알려주십시오 수 있습니까? –

+0

대상 버퍼에 맞는 데이터를 복사하지 마십시오! –