首页 > 其他分享 >NEW_我不喜欢_strlcpy

NEW_我不喜欢_strlcpy

时间:2024-07-17 10:19:57浏览次数:14  
标签:strlcpy 缓冲区 strcpy 喜欢 使用 字符串 NEW 错误处理

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

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

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

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

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

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

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

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

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

相关文章

  • 喜欢dp动态规划的第二天(暑假提升)
    不要失去信心,只要坚持不懈,就终会有成果。——钱学森dp动态规划题目详解--第二天前言1、最长定差子序列2、最长等差数列3、等差数列划分II-子序列4、回文子串5、总结前言由于上一期的动态规划我觉的太过于繁琐,所以这次简化一下操作,题目概念解析将不会再写,我直......
  • Pandas运行报错分析:ValueError: Length mismatch: Expected axis has 0 elements, new
    ✨✨欢迎大家来到景天科技苑✨✨......
  • 记一次Burp与NEW_xp_CAPTCHA工具联动爆破验证码
    首先下载NEW_xp_CAPTCHA工具地址:https://github.com/smxiazi我下载的是大佬直接发布的打包好的环境,包括对应python3.6.6与NEW_xp_CAPTCHA工具脚本下载完后直接点击运行即可本地访问http://127.0.0.1:8899/,看到这个页面,证明没问题然后就是burp导入插件jar。这里要下载xp_CA......
  • Python安装出现严重错误的解决方法_0x80070643-( A newer version of the Python laun
    每次在装软件配置环境的时候,总会遇到别人碰不到的各种问题,人都麻了。最后我还是自己尝试这解决了,只是建议,虽然说不知道是否以后还会问题,但是可以成功安装,配置环境并运行。(本人是win11)首先解释一下pythonlauncher是什么资料解释:PythonLauncher是Python官方提供的一个工具,......
  • JavaScript中的new map()和new set()使用详细(new map()和new set()的区别)
    Map对象是一种键值对的集合,其中的键是唯一的,值可以重复。newSet():在JavaScript中,newSet()是用来创建一个新的Set对象的语法。Set对象是一种集合,其中的值是唯一的,没有重复的值。newSet()可以用来创建一个空的Set对象,在创建时传入一个数组或类数组对象,Set会自动去......
  • Improving News Recommendation via Bottlenecked Multi-task Pre-training论文阅读笔
    ImprovingNewsRecommendationviaBottleneckedMulti-taskPre-training论文阅读笔记Abstract现存的问题:​ 现有的PLM大多是在大规模通用语料库上预先训练的,并没有专门用于捕捉新闻文章中的丰富信息。因此,它们生成的新闻嵌入信息可能不足以表示新闻内容或描述新闻之间的关......
  • 去重技巧:图片怎么查重?4个图片查重方法大公开!(2024 New)
    照片是保存记忆的绝佳工具。它们是终极时间胶囊,能够唤起久违的记忆和情感。然而,随着照片数量的迅速增长,我们电脑的存储空间也被它们占据得满满当当。这一大部分责任归咎于我们设备上无数的重复照片。这些重复照片由于我们的疏忽而产生,因我们的无所谓而滞留在电脑中。摆脱这些重......
  • 最喜欢dp动态规划的一次(暑期刷题)
    以积极的态度面对生活,才能感受到人生的美好!dp动态规划-第一天前言1、环绕字符串中唯一的子字符串2、最长递增子序列3、摆动序列4、最长递增子序列的个数5、最长数对链6、最长定差子序列7、最长的斐波那契子序列的长度8、总结前言所有的问题可能不止一种方法,但是由......
  • 面向1-类和对象-方法、new的定义和使用
    面向对象编程OOP面向面向对象和面向过程面向对象oop-分类的思维方式-本质——以类的方式组织代码,以对象的组织(封装)数据抽像+封装+继承+多态认识上-先有对象(具体的事物)再有类(对对象的抽象)代码上-先有对象再有类(类是对象的模板)面向过程-线性步骤分析方式类-描绘一系列事物的......
  • Simplifying Content-Based Neural News Recommendation: On User Modeling and Train
    SimplifyingContent-BasedNeuralNewsRecommendation:OnUserModelingandTrainingObjectives论文阅读笔记Abstract存在的问题:​ (1)尽管设计具有普遍的同质性,但不同的评估数据集和协议阻碍了模型之间的直接比较;(2)它使其他模型设计和训练目标的探索工作受到很大影响......