鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

kpccl_memcpy

内存拷贝,将src位置的内存拷贝到dst位置。

接口定义

int kpccl_memcpy(void *dst, const void *src, size_t count);

环境变量

kpccl通过环境变量KPCCL_MEMCPY_MT_ENABLE来控制kpccl_memcpy接口是否开启多线程memcpy能力,该环境变量默认为0表示不开启;当该环境变量设置成1开启多线程memcpy能力后,可以通过配置KPCCL_MEMCPY_MT_THRESHOLD来确认多线程memcpy能力使能的包大小阈值,该阈值默认为512KB;kpccl_memcpy2D接口也采用上述环境变量配置方式使能多线程能力。

参数

表1 参数定义

参数名

类型

描述

输入/输出

dst

void *

指向存储复制内容的目标内存位置的指针

输入/输出

src

const void *

指向要复制的源内存位置的指针

输入

count

size_t

需要复制的内存大小

输入

返回值

  • 成功:返回KPCCL_OK
  • 失败:返回KPCCL_ERROR

示例

#include <stdio.h> 
#include <stdlib.h>
#include "kpccl.h" 
   
int main() 
{ 
         int len = 1024; 
         char *src = (char *)malloc(len);
         char *dest = (char *)malloc(len);
         for (int i = 0; i < len / sizeof(char); i++) {
             src[i] = i ;
             dest[i] = 0;
         }
         kpccl_memcpy(dest, src, len);
         free(src);
         free(dest); 
         return 0; 
}
  • 上述示例演示了内存拷贝的流程。
  • 上述kpccl_memcpy函数将将src数组中的内容复制到dest数组,其中复制的内存大小为len。