c - 为什么 strlcat 和 strlcpy 是 unsigned int 而不是 void?
问题描述
我不明白为什么我们必须返回一个unsigned int
forstrlcat
和strlcpy
,为什么我们需要它?这不是该功能的目的。
感谢您的回复
解决方案
这些函数的目的是移动字符串(以某种方式),当你这样做时,程序员一个非常常见的问题是“移动了多少个字符?”。
由于它已经知道这些信息,因此它不再需要返回此信息。否则,程序员将不得不在之前和/或之后做一些昂贵的 strlen()。
此外,如果它们由于缓冲区太小而失败,它们会为您提供所需的字符数,因此您可以检测到截断,并可能重新分配缓冲区。
推荐阅读
- node.js - 如何验证或清理从 Node js 中的获取 URL 收到的用户输入
- android - ARCore android如何以编程方式检测面部和眨眼?
- python - sy.sympify(str(expression)) is not equal to expression
- python - Cummulative addition in a loop
- load-testing - 以动态方式在加特林脚本中生成纪元时间
- gcc - X86中mov和movl指令的区别?我在阅读汇编时遇到了一些麻烦
- erlang - 具有精确键列表的模式匹配映射
- keycloak - Keycloak登录页面:重定向到另一个客户端
- php - Laravel 过滤器和身份验证
- performance - 好吗,采样时间随着用户数量的增加而逐渐增加