当前位置: 首页 > news >正文

医院网站HTML5做网上贸易哪个网站好

医院网站HTML5,做网上贸易哪个网站好,中国风html5网站模板免费下载,接技术标做网站本章目录 前言什么是安全函数#xff1f;安全函数的特点主要的安全函数1. 字符串操作安全函数2. 格式化输出安全函数3. 内存操作安全函数4. 其他常用安全函数 安全函数实例示例 1#xff1a;strcpy_s 和 strcat_s示例 2#xff1a;memcpy_s示例 3#xff1a;strtok_s 总结 … 本章目录 前言什么是安全函数安全函数的特点主要的安全函数1. 字符串操作安全函数2. 格式化输出安全函数3. 内存操作安全函数4. 其他常用安全函数 安全函数实例示例 1strcpy_s 和 strcat_s示例 2memcpy_s示例 3strtok_s 总结 前言 在 C 语言的编程中缓冲区溢出是常见的安全问题之一。它发生在程序尝试将数据写入一个不足够大的缓冲区时导致数据覆盖了相邻内存区域。这种错误不仅会导致程序崩溃还可能导致潜在的安全漏洞使攻击者能够通过精心设计的输入数据控制程序流甚至执行恶意代码。 为了避免这类问题C11 标准引入了一些 “安全函数”通常称为 Annex K 函数这些函数是传统 C 函数的增强版本增加了缓冲区大小检查和错误处理机制从而提升了程序的安全性。 本文将带您深入了解 C 语言中的安全函数帮助您编写更加健壮和安全的代码。 什么是安全函数 在 C 语言中安全函数是指那些在执行字符串和内存操作时显式检查目标缓冲区大小并报告错误的函数。它们的设计初衷是防止缓冲区溢出、访问越界等问题。安全函数通常返回一个 errno_t 类型的错误码以便调用者能够检测是否成功执行。 安全函数的特点 缓冲区大小检查安全函数需要明确传递目标缓冲区的大小确保不会发生溢出。返回值检查大多数安全函数返回一个错误代码可以通过检查返回值来判断是否成功执行。错误处理当缓冲区大小不足或者其他错误发生时安全函数会尝试清空或初始化输出缓冲区避免未定义的行为。 主要的安全函数 以下是 C 语言中一些常见的安全函数及其传统函数对比 1. 字符串操作安全函数 strcpy_s安全版本的 strcpy复制字符串并检查目标缓冲区的大小。 errno_t strcpy_s(char *dest, rsize_t destsz, const char *src);strcat_s安全版本的 strcat将源字符串追加到目标字符串末尾并检查缓冲区大小。 errno_t strcat_s(char *dest, rsize_t destsz, const char *src);strncpy_s安全版本的 strncpy复制最多 n 个字符并检查缓冲区大小。 errno_t strncpy_s(char *dest, rsize_t destsz, const char *src, rsize_t count);strncat_s安全版本的 strncat追加最多 n 个字符到目标字符串末尾并检查缓冲区大小。 errno_t strncat_s(char *dest, rsize_t destsz, const char *src, rsize_t count);strtok_s安全版本的 strtok引入上下文参数解决线程安全问题。 char *strtok_s(char *str, const char *delim, char **context);2. 格式化输出安全函数 sprintf_s安全版本的 sprintf格式化输出到字符串时检查缓冲区大小。 int sprintf_s(char *buffer, rsize_t sizeOfBuffer, const char *format, ...);snprintf_s安全版本的 snprintf格式化输出时限制字符数并检查缓冲区大小。 int snprintf_s(char *buffer, rsize_t sizeOfBuffer, const char *format, ...);vsprintf_s安全版本的 vsprintf接收 va_list 参数列表并检查缓冲区大小。 int vsprintf_s(char *buffer, rsize_t sizeOfBuffer, const char *format, va_list argptr);3. 内存操作安全函数 memcpy_s安全版本的 memcpy复制内存时检查目标缓冲区大小。 errno_t memcpy_s(void *dest, rsize_t destsz, const void *src, rsize_t count);memmove_s安全版本的 memmove允许内存区域重叠并检查目标缓冲区大小。 errno_t memmove_s(void *dest, rsize_t destsz, const void *src, rsize_t count);memset_s安全版本的 memset填充内存并检查目标缓冲区大小。 errno_t memset_s(void *dest, rsize_t destsz, int ch, rsize_t count);4. 其他常用安全函数 _itoa_s 和 _ultoa_s安全版本的整数转换函数。 errno_t _itoa_s(int value, char *buffer, size_t sizeOfBuffer, int radix); errno_t _ultoa_s(unsigned long value, char *buffer, size_t sizeOfBuffer, int radix);_strlwr_s 和 _strupr_s将字符串转换为小写或大写的安全版本。 errno_t _strlwr_s(char *str, size_t numberOfElements); errno_t _strupr_s(char *str, size_t numberOfElements);安全函数实例 下面通过一些简单的示例展示如何使用 C 的安全函数来提高代码的健壮性避免缓冲区溢出问题。 示例 1strcpy_s 和 strcat_s #include stdio.h #include string.hint main() {char dest[20]; // 目标缓冲区大小为 20const char *src Hello, World!;// 使用 strcpy_s 将 src 复制到 destif (strcpy_s(dest, sizeof(dest), src) ! 0) {printf(strcpy_s failed!\n);return 1; // 返回错误代码} else {printf(After strcpy_s: %s\n, dest);}// 使用 strcat_s 将 C Language 追加到 destconst char *appendStr C Language;if (strcat_s(dest, sizeof(dest), appendStr) ! 0) {printf(strcat_s failed!\n);return 1; // 返回错误代码} else {printf(After strcat_s: %s\n, dest);}return 0; }输出 After strcpy_s: Hello, World! strcat_s failed!在这个示例中strcpy_s 成功将字符串复制到目标缓冲区但由于 dest 缓冲区的大小不足以容纳追加的内容strcat_s 返回错误并防止溢出。 示例 2memcpy_s #include stdio.h #include string.hint main() {char src[] Sensitive Data;char dest[15]; // 目标缓冲区大小为 15// 使用 memcpy_s 将数据复制到 destif (memcpy_s(dest, sizeof(dest), src, strlen(src) 1) ! 0) {printf(memcpy_s failed!\n);return 1; // 返回错误代码} else {printf(After memcpy_s: %s\n, dest);}return 0; }输出 After memcpy_s: Sensitive Datamemcpy_s 确保 dest 缓冲区足够大以容纳源字符串的所有数据。如果缓冲区不够函数会返回错误并防止执行不安全的内存复制。 示例 3strtok_s #include stdio.h #include string.hint main() {char str[] apple,orange,banana;char *token;char *context NULL;// 使用 strtok_s 分割字符串token strtok_s(str, ,, context);while (token ! NULL) {printf(Token: %s\n, token);token strtok_s(NULL, ,, context);}return 0; }输出 Token: apple Token: orange Token: banana在这个例子中strtok_s 使用上下文参数来避免多线程环境下的安全问题。每次调用都不会影响其他线程中的字符串分割。 总结 C 语言中的安全函数是为了提高代码的安全性而设计的尤其是在防止缓冲区溢出、内存越界等常见错误方面提供了有效的防护。通过使用这些函数您可以确保程序在处理字符串和内
http://www.hkea.cn/news/14390817/

相关文章:

  • 长沙seo网站建设有没有在线辅导家做的网站
  • 莆田制作网站企业东莞市保安公司排名
  • 点餐网站模板 手机端四川住房和城乡建设厅网站不能进入
  • 网站建设标新立异wordpress 删除图片
  • 合肥网站建设+一浪微信公众号小程序怎么开通
  • 做中医药网站有前景吗公司名称大全三个字
  • 做网站要在阿里云上买几个贡献桩基工程信息网发布
  • 杨幂做的网站广告如何查看网站的点击量
  • 网站建设需要英语吗网站建设金思扬网络
  • 快速提高网站排名做公众号关注网站
  • 做微信公众号微网站如何做自己的影视网站
  • 大连网站制作选择ls15227一个前端页面多少钱
  • 江苏质量员证在哪个网站做的wordpress极简
  • 开封美食网站建设规划seo网络推广案例
  • 网站全程设计技术北京网站备案在哪
  • 移动端ui设计是什么wordpress 优化数据
  • 做静态网站的参考文献找个人做网站
  • 带数据库网站模板深圳有哪些做网站公司好
  • 云服务器怎么建网站五个跨境电商平台
  • 网网站制作开发谁用腾讯风铃做网站的
  • 盐城网站开发招代理网站建设需要什么软件
  • 图片站wordpress有哪些网站做外贸的
  • 网站设计制作系统哪个好wordpress 图文
  • 东港区建设局网站seo专员是什么职位
  • 小语种网站怎么设计沈阳专业做网站
  • 手机资讯网站源码建设企业网站管理的重要性
  • 学院网站建设的目的WordPress邮箱验证 注册
  • 宿松做网站策划运营
  • 做一个15页的网站怎么做如何做好网络营销工作
  • 网站建设网站推广网站建设各模块功能简述