为何不禁用危险的memcpy或更新memcpy源码,而使用更安全的memcpy_s

news2025/2/12 19:34:08

关于使用更安全的memcpy_s而不禁用危险的memcpy或更新memcpy源码的问题,以下是一些考虑因素:

首先,memcpy_s并不是绝对安全的实现。尽管它要求您提供一个长度参数来确保不会发生溢出或越界问题,但这个长度仍然需要您自己提供,而不是通过标准库的各种黑魔法进行判断。如果您传入的长度有问题,这些所谓的"安全函数"仍然可能悄无声息地引发错误,就像非安全版本一样。而且,对于返回的错误,您可能并不会每次都检查,尤其是在您确信目标位置足够大的情况下,而这正是许多程序中出现越界访问的根本原因之一。

其次,在许多需要大量数据复制的情况下,特别是涉及到IO操作时,频繁进行长度判断会严重影响性能,尤其是在数据长度每次都不同的情况下。这可能导致分支预测出现大量错误,严重降低性能。刚好,我这里有嵌入式学习路线,毕设,各种项目,需要留个6。

最后,还有可移植性的问题。目前只有Windows平台强制推广使用这类安全函数,而在其他平台上,对于C运行库来说,这种安全函数并不是必需的。如果您编写的代码需要使用这些函数,而其他人仍在使用旧版本的GCC 3.3编译器,可能会告诉您这些代码无法编译。这就需要您在编写代码时进行区分,以编写适应两种情况的代码。

综上所述,考虑到memcpy_s的安全性并非绝对,性能损耗以及可移植性问题,因此在是否禁用危险的memcpy或更新memcpy源码方面,需要权衡利弊并根据具体情况做出决策。


ab9c7eb24455d80ed5baa99bc75b6543.jpeg

d358f084b6ae60325b62c03735c67252.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/864145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

液压系统比例阀放大器US-DAT2-F、US-DAPQ-N、US-DAS2

比例放大器US-DAS1、US-DAS2、US-DAPQ-N、US-DAPQ-H、US-P1、US-P2、US-DAT2-F、US-DAT2-A适配控制各种不带位置反馈比例阀; 控制如博世力士乐(Bosch Rexroth)、伊顿威格士(EATON Vickers)、油研(YUKEN&am…

从小白到大神之路之学习运维第78天-------Kubernetes集群应用部署测试

第四阶段 时 间:2023年8月11日 参加人:全班人员 内 容: Kubernetes集群应用部署测试 目录 应用部署测试 应用部署测试 下面我们部署一个简单的Nginx WEB服务,该容器运行时会监听80端口。 (一)环境…

vue报错‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

运行我的后台管理项目的时候报错:‘vue-cli-service’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 查看自己package.json中是否有vue 或者vue-cli-service 查看自己项目目录下有没有node_module文件夹,如果有删除,然后…

uprobe trace多线程mutex等待耗时

问题背景环境 ubuntu2204 服务器支持debugfs uprobe,为了提升应用程序的性能,需要量化不同参数下多线程主程序等待在mutex上的耗时区别 linux document中对uprobe events的说明如下 uprobetracer.rst - Documentation/trace/uprobetracer.rst - Linux…

什么是分布式系统,如何学习分布式系统

正文 虽然本人在前面也写过好几篇分布式系统相关的文章,主要包CAP理论,分布式储存与分布式事务,但对于分布式系统,并没有一个跟清晰的概念。分布式系统涉及到很多的技术、理论与协议,很多人也说,分布式系统…

股票自动交易接口开发原理及源码分享

股票自动交易接口的开发原理涉及多个方面,主要包括以下几个步骤: 1. 数据接口获取:通过连接到证券交易所或第三方数据提供商的API,获取实时市场数据,包括股票报价、交易成交量、买卖盘口等信息。 2. 策略定义&#x…

分类预测 | MATLAB实现SMA-CNN-BiLSTM-Attention多输入分类预测

分类预测 | MATLAB实现SMA-CNN-BiLSTM-Attention多输入分类预测 目录 分类预测 | MATLAB实现SMA-CNN-BiLSTM-Attention多输入分类预测分类效果基本介绍模型描述程序设计参考资料 分类效果 基本介绍 1.MATLAB实现SMA-CNN-BiLSTM-Attention多输入分类预测,CNN-BiLSTM结…

数据结构篇七:排序

文章目录 前言1.插入排序1.1 基本思想1.2 代码实现1.3 特性总结 2.希尔排序2.1 基本思想2.2 代码实现2.3 特性总结 3. 选择排序3.1 基本思想3.2 代码实现3.3 特性总结 4. 堆排序4.1 基本思想4.2 代码实现4.3 特性总结 5. 冒泡排序5.1 基本思想5.2 代码实现5.3 特性总结 6. 快速…

数据库SQL查询语句的执行顺序是怎么样的?

目录 1. 引言 2. SQL查询语句举例 3. SQL查询语句顺序执行误区 4. 查询语句步骤分析 5. SQL查询语句执行顺序总结 6. 面试小问题 6.1 WHERE 和 HAVING 谁的过滤范围更广? 6.2 为什么 WHERE 之后不能使用聚合函数进行过滤? 6.3 为什么 WHERE 的执…

一文了解SmartSE

你或许没有听说过SmartSE,但你一定听说过“Virtual Electronic”,也就是“V-ECU”,虚拟ECU。2020年,ProSTEP iViP协会的SmartSE项目组出版了白皮书,对虚拟ECU做了详尽介绍。 ProSTEP iViP协会成立于1993年&#xff0c…

远程预付费平台助力转供电主体解决“收费难” 安科瑞 顾语欢

为了帮助物业合理收取转供电电费以及过程中的运营成本,安科瑞AcrelCloud-3200远程预付费平台解决方案根据分时电价政策配置合理的计费仪表和软件,帮助转供电主体完成电费统计、电网损耗、租户公共用电公摊,协助转供电主体更高效的解决电费收取…

Navicat 针对金融用户的投票调查 | 诚邀您的参与,让 Navicat 更优!

Navicat 是一款流行的数据库管理工具,它可以帮助用户更轻松地管理和维护数据库。一直以来,Navicat 在金融业(银行、保险、证券和互联网金融服务业等)得到广泛应用。目前,浦发银行、邮储银行、农业银行、中国银联和泰康…

Arcgis地图实战二:地图实时轨迹展示

1.最终效果预览 2.定时器执行方法 进入页面执行执行器 this.locationInterval setInterval(() > {this.getCurrentPosition();}, this.conf.LocateInterval);离开页面销毁 clearInterval(this.locationInterval);this.conf.LocateInterval为获取的数据同步中的定时器间隔…

UE4/5 GAS技能系统入门3 - GameplayEffect

阅读本文需要上一篇AttributeSet的基础知识: https://blog.csdn.net/grayrail/article/details/132148492 本文也并非教程性质文章,主要讲解学习记录为主。 这篇开始讲AttributeSet配置好后,GameplayEffect的使用。 1.将GE配置至Ability Co…

计算机竞赛 - 基于机器视觉的图像拼接算法

前言 图像拼接在实际的应用场景很广,比如无人机航拍,遥感图像等等,图像拼接是进一步做图像理解基础步骤,拼接效果的好坏直接影响接下来的工作,所以一个好的图像拼接算法非常重要。 再举一个身边的例子吧,…

远程RDP、远控手机、双屏控双屏,向日葵“瓜子会员”妥妥的真香

最近儿有点“小感冒”,没去公司在家歇着,居家归居家,砖还是要搬的,突然来活了也得及时的处理掉,这种时候我一般用远程桌面的方式,之前就一直用的向日葵远程控制。 为啥用远程桌面呢?主要原因是家…

31 | 独角兽企业数据分析

独角兽企业:是投资行业尤其是风险投资业的术语,一般指成立时间不超过10年、估值超过10亿美元的未上市创业公司。 项目目的: 1.通过对独角兽企业进行全面地分析(地域,投资方,年份,行业等),便于做商业上的战略决策 项目数据源介绍 1.数据源:本项目采用的数据源是近…

独立站还值不值得入?先来了解最新趋势!

近年来,随着跨境电商行业的蓬勃发展,跨境卖家的数量持续攀升,然而由于亚马逊等跨境电商平台对第三方卖家的规则约束越加严厉,目前有很多卖家都在考虑平台转型独立站。与此同时,独立站 SHEIN、Anker、DX 的成功&#xf…

Git全栈体系(五)

第八章 IDEA 集成 GitHub 一、设置 GitHub 账号 如果出现 401 等情况连接不上的,是因为网络原因,可以使用以下方式连接: 然后去 GitHub 账户上设置 token。 点击生成 token。 复制红框中的字符串到 idea 中。 点击登录。 二、分享工程…

【正点原子STM32连载】 第一章 本书学习方法摘自【正点原子】APM32F407最小系统板使用指南

1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html# 第一…