簡體   English   中英

什么是cURL選項參數生存期?

[英]What is cURL option parameters lifetime?

我是第一次使用cURL,盡管文檔似乎很完整,但是我看不到在哪里可以找到curl_easy_setopt()參數所需的生存期。

這是我的意思的示例:

char* str = strdup("my user agent");
curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, str);
free(str);

在調用free()之后curl_handle有效嗎?

是否已復制str內容,還是仍然由curl某個地方直接引用了它?

從官方文檔:

作為'char *'參數傳遞給libcurl的字符串由庫復制; 因此,在curl_easy_setopt()返回之后,可能會覆蓋與指針參數關聯的字符串存儲。 下面的選項詳細信息中描述了此規則的例外。

在7.17.0版之前,未復制字符串。 相反,用戶被迫使它們保持可用狀態,直到libcurl不再需要它們為止。

因此,如果您使用的是最新版本的libcurl,則可以在設置字符串后立即釋放它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM