安全字符串处理函数
来源:互联网 发布:物流接单软件 编辑:程序博客网 时间:2024/06/05 11:25
转自:http://blog.csdn.net/zhang1chao5/article/details/7329830
缓冲区溢出错误(这是处理字符串时的典型错误)已成为针对应用程序乃至操作系统的各个组件发起安全攻击的媒介。,所以Microsoft在C运行库中新增了很多安全函数。我们应该尽量使用这些新函数来防止应用程序在处理字符串的时候发生的缓冲区溢出。
一、新的安全字符串函数
C中的所有字符串处理函数,都对应一个新版本的函数,前面名称相同,但是最后添加了一个后缀 _s (代表secure)。如:
PTSTR
errno_t _tcscpy_s(PTSTR strDestination, size_t numberOfCharacters ,
还有memcpy_s,memmove_s,wmencpy,wmemove_s等函数
如果这些检查中有一项失败,函数就会设置局部与线程的C运行时变量errno,然后返回一个errno_t值来指出成功或是失败。然而,这些函数并不实际返回(如果有自己的处理函数是可以返回的,见上篇博文)。如果是debug build,则会调用 Debug Assertion Failed,然后终止应用程序(即利用断言),如果是release build,程序自动终止。
C运行时实际允许我们自己提供处理函数。见上一篇博文
二、有更多控制力的处理函数
还有
可以看出
这些函数都返回HRESULT不同于安全函数(带_S后缀的),当缓冲区太小的时候,这些函数会执行截断
详情请见MSDN
注:只支持unicode
- 安全字符串处理函数
- 安全字符串处理函数
- Strsafe.h安全的C语言字符串处理函数
- 更安全的C语言字符串处理函数
- Strsafe.h:更安全的C语言字符串处理函数
- 使用安全字符串函数
- C/C++种字符串的安全操作方式strcpy_s等字符串处理函数
- 关于安全字符串操作函数
- 内核模式安全字符串函数
- C运行库中的安全字符串处理函数(即函数名以_s结尾的函数)
- UINCODE字符串和安全字符串函数
- PHP字符串处理函数
- 字符串处理函数
- javascript字符串处理函数
- 字符串处理函数
- c++(字符串处理函数)
- javascript字符串处理函数
- sql字符串处理函数
- iOS开发是否应该使用ARC?
- Android中的style部分属性值介绍(转载)
- ACM之while(scanf("%d",&n)!=EOF)
- Spring基于 Annotation 的简单介绍
- 备份:Android 常用 mimeType 表
- 安全字符串处理函数
- linux下查看所有用户及所有用户组【理论篇】
- Linux时间函数介绍
- 开发环境搭建相关
- Delphi 文件操作(3)
- 探讨PHP引用&符号
- 取消UltraEdit默认生成.bak文件
- 构造函数是支持手动调用的
- c++ volatile关键字