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接口也采用上述环境变量配置方式使能多线程能力。
参数
参数名 |
类型 |
描述 |
输入/输出 |
|---|---|---|---|
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。
父主题: 内存管理函数