From e917fdc164d5ea164e97ede2d25b621b3b5322ff Mon Sep 17 00:00:00 2001 From: chenshijun <csj_sky@126.com> Date: 星期二, 31 三月 2020 17:37:16 +0800 Subject: [PATCH] 增加memcpy和memmove操作,待测试 --- shmMemory.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-) diff --git a/shmMemory.go b/shmMemory.go new file mode 100644 index 0000000..c7806df --- /dev/null +++ b/shmMemory.go @@ -0,0 +1,46 @@ +// Copyright 2014 Vastech SA (PTY) LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build linux + +package shmqueue + + +//#include <string.h> +import "C" +import "unsafe" + +func memcpy(dest, src []byte) int { + n := len(src) + if len(dest) < len(src) { + n = len(dest) + } + if n == 0 { + return 0 + } + C.memcpy(unsafe.Pointer(&dest[0]), unsafe.Pointer(&src[0]), C.size_t(n)) + return n +} + +func memmove(dest, src []byte) int { + n := len(src) + if len(dest) < len(src) { + n = len(dest) + } + if n == 0 { + return 0 + } + C.memmove(unsafe.Pointer(&dest[0]), unsafe.Pointer(&src[0]), C.size_t(n)) + return n +} -- Gitblit v1.8.0