linux下实现memcpy_s函数

memcpy_s是windows下的一种安全内存操作函数,但是linux下并没有实现,在此自己实现一个类似功能的函数memcpy_st:

int memcpy_st(void *det, size_t detSize, const void * src, size_t srcSize, char *cppName, uint32_t lineNumber)
{
	uint8_t errorcode = 0;
	if (srcSize > detSize || src == NULL || det == NULL)
	{
		if (srcSize > detSize)
			errorcode = 1;
		else if (src == NULL)
			errorcode = 2;
		else if (det == NULL)
			errorcode = 3;
		//printf("[waring] %s.%d memcpy_s is error:%d!\n", cppName, lineNumber, errorcode);
		printf("[waring] %s.%d memcpy_s is error:%d [%d---%d]!\n", cppName, lineNumber, errorcode,srcSize, detSize);
		fflush(stdout);
		return -1;
	}
	else
		memcpy(det, src, srcSize);

	return 1;
}

参数cppName是调用该函数所在的源文件的名称,可通过宏__FILE__获得;
参数lineNumber时调用该函数所在源文件的行号,可通过宏__LINE__获得;


读后有收获可以支付宝请作者喝咖啡:


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值