首页 > 其他分享 >【发现】_我不喜欢_strlcpy

【发现】_我不喜欢_strlcpy

时间:2024-07-17 20:42:55浏览次数:5  
标签:发现 strlcpy 缓冲区 strcpy 喜欢 使用 字符串 错误处理

https://nrk.neocities.org/articles/not-a-fan-of-strlcpy

作者讨论了 strcpy 的变体 strlcpy,并认为这个变体没有使用的意义。

他们都是把字符串拷贝到另一个位置的函数,strcpy 因为不限制目标位置的长度,容易产
生缓冲区溢出,因此被很多人认为是不安全的。strlcpy 则改进了这种行为,通过传入目标
位置字符串的长度来限制缓冲区溢出。

但本文作者通过分三种情况讨论,认为 strlcpy 没有合适的应用场景。

如果使用场景允许字符串截断,应该使用 memccpy 配合手动设置字符串尾,这比 strlcpy
更高效。

如果使用场景不允许字符串截断,那应该使用 strdup。

如果不允许字符串截断,但是又只能使用定长缓冲区,也应该像第一种情况一样要使用
memccpy。而且,这比第一种情况下,strlcpy 还要低效,甚至是逻辑混乱的。

评论

从这些分析看来,strcpy 本身也是一种不合理的设计。错误发生时的处理,不
只是错误处理需求本身决定的,还是产生错误的需求决定的。错误处理很大程度上是需求的
一部分,而不是需求的副产物。

标签:发现,strlcpy,缓冲区,strcpy,喜欢,使用,字符串,错误处理
From: https://www.cnblogs.com/plus7wist/p/18308240

相关文章

  • 构建基于Spring Cloud和Consul的服务注册与发现系统
    构建基于SpringCloud和Consul的服务注册与发现系统大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!一、引言在微服务架构中,服务注册与发现是关键组件。SpringCloud与Consul的结合可以帮助我们轻松实现服务注册与发现功能。本文将介绍如何使用SpringCl......
  • PHP姓名配对测试源码 可查看朋友到底喜欢谁的趣味源码
    基于PHP+MYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分,自己手动在数据库里修改数据,数据库里有就会优先查询数据库的信息,没设置的话第一次查询缘分都是非常好的95-99,第二次查就比较差,所以如果要你女朋友查询你的名字觉得很好那就得是她第一反应是查和你的缘分......
  • 服务注册/发现-Eureka-微服务核心组件【分布式微服务笔记02】
    服务注册/发现-Eureka-微服务核心组件【分布式微服务笔记02】服务注册/发现-Eureka目前主流的服务注册&发现的组件是Nacos,但是Eureka作为一个老牌经典的服务注册&发现技术还是有必要学习一下,原因:一些早期的分布式微服务项目使用的是Eureka,在工作中,完全有可能遇到.后......
  • vmware安装在scsi磁盘上的grub无法发现/引导其它scsi磁盘
    #虚拟机盘结构virtual-disk-1(scsi,gpt)--fat32(EFI,grub)--ext4(empty)virutal-disk-2(scsi,gpt)--ext4(ubuntu,system,rootfs)virtual-disk-3(scsi,gpt)--ext4(empty)之前引导分区和ubuntu者在一个scsi盘上,所以没有注意到启动时有grub,进grubshell,但ls......
  • 你喜欢刚刚公布的Scrum联盟系列认证新徽章吗?
    我们非常激动地宣布,Scrum联盟重新设计了我们的徽章,以更好地展示我们会员的技能和成就。新的设计具有视觉更新和增强的功能,以提高可访问性和清晰度,并展示您在敏捷之旅中取得的成就。为什么重新设计徽章重新设计我们徽章的决定源于我们致力于检视和调整为会员提供的服务,并不断改进......
  • NEW_我不喜欢_strlcpy
    https://nrk.neocities.org/articles/not-a-fan-of-strlcpy作者讨论了strcpy的变体strlcpy,并认为这个变体没有使用的意义。他们都是把字符串拷贝到另一个位置的函数,strcpy因为不限制目标位置的长度,容易产生缓冲区溢出,因此被很多人认为是不安全的。strlcpy则改进了这种行为......
  • 定制化服务发现:Eureka中服务实例偏好的高级配置
    定制化服务发现:Eureka中服务实例偏好的高级配置在微服务架构中,服务实例的智能管理和优化是保证系统高效运行的关键。Eureka作为Netflix开源的服务注册与发现框架,提供了丰富的配置选项来满足不同场景下的需求。服务实例偏好配置允许开发者根据特定的业务需求,定制化服务实例......
  • 喜欢dp动态规划的第二天(暑假提升)
    不要失去信心,只要坚持不懈,就终会有成果。——钱学森dp动态规划题目详解--第二天前言1、最长定差子序列2、最长等差数列3、等差数列划分II-子序列4、回文子串5、总结前言由于上一期的动态规划我觉的太过于繁琐,所以这次简化一下操作,题目概念解析将不会再写,我直......
  • Autobots应用探索:实践中的思考与发现
    背景背景1:作为一名测试,日常工作中必不可少的几个环节是查看需求文档、编写测试用例、处理线上问题、能力提升等,基于集团的https://xxx.jd.com/工具能一次性帮我们把这些事情都做了;背景2:作为XXX共建项目的成员之一同时也是第一批用户,我用它做了几个测试实践,和大佬们一起探讨交......
  • 心跳检测的艺术:Eureka服务发现中的智能配置
    心跳检测的艺术:Eureka服务发现中的智能配置在微服务架构中,服务发现是确保服务之间可以相互通信的关键机制。Eureka作为Netflix开源的服务发现框架,提供了一种简单而高效的服务注册与发现机制。然而,为了维持服务的可用性和稳定性,服务之间的心跳检测变得至关重要。本文将深入......