声明

  1. CURLcode curl_global_init_mem(
  2. long flags,
  3. curl_malloc_callback m,
  4. curl_free_callback f,
  5. curl_realloc_callback r,
  6. curl_strdup_callback s,
  7. curl_calloc_callback c);

概要

带有内存回调的全局libcurl初始化。

详情

该函数的行为与curl_global_init完全一致,除了一点:它允许应用程序设置回调来替换内部使用的内存函数。

这个页面只添加了关于回调的文档,参考curl_global_init的页面来获取其它信息。当你使用该函数时,所有回调参数必须设置成有效的函数指针。

回调的原型应该匹配下面这些:

  1. void *malloc_callback(size_t size);

替换malloc()

  1. void free_callback(void *ptr);

替换free()

  1. void *realloc_callback(void *ptr, size_t size);

替换realloc()

  1. char *strdup_callback(const char *str);

替换strdup()

  1. void *calloc_callback(size_t nmemb, size_t size);

替换calloc()

警告

操纵这些回调给应用程序提供了相当大的能力去严重破坏libcurl。务必要小心!