strcpy,strncpy和strncpy_s的区别
来源:互联网 发布:列主元高斯消去法编程 编辑:程序博客网 时间:2024/04/30 07:25
转自:http://blog.sina.com.cn/s/blog_4fb1f17d010196di.html
首先说下strcpy
strcpy()是依据源串的\0作为结束判断的,不检查copy先的Buffer的Size,如果目标空间不够,就有BufferOverflow问题。
strncpy的原型为:
char * strncpy(char *dest, char *src, size_t n);
其将字符串src中最多n个字符复制到字符数组dest中(它并不像strcpy一样遇到NULL才停止复制,而是等凑够n个字符才开始复制),返回指向dest的指针,所以,用户定义好size,就没有bufferoverfolow的风险
目前,strncpy是字符串拷贝推荐的用法
加_s版本则是从VS2005开始推出的安全版本,
而加_s版本之所以安全,是因为他们在接口增加了一个参数numElems来表明dest中的字节数,
防止目标指针dest中的空间不够而导致出现Bug,同时返回值改成返回错误代码,而不是为了一些所谓的方便而返回char*。这样接口的定义就比原来安全很多。
但是,_s版本并不是标准库,所以,不推荐使用
strcpy(char* dest,char* src);将参数2复制到参数1中遇到NULL才停止复制
strncpy(char* dest,char* src,size_t n);而是等凑够参数3(即n)个字符才开始复制
strncyp_s(char* dest,rsize_t SizeInBytes,const char* Src,rsize_t MaxCount);
- strcpy,strncpy和strncpy_s的区别
- strcpy,strncpy和strncpy_s的区别
- strcpy,strncpy和strncpy_s的区别
- strcpy,strncpy和strncpy_s的区别
- strcpy,strncpy和strncpy_s的区别
- strcpy,strncpy和strncpy_s的区别 strncpy函数与memcpy函数
- strcpy、strncpy、strncpy_s和snprintf
- strncpy,strncpy_s和strcpy,strcpy_s
- Strcpy和Strncpy的区别
- Strcpy和Strncpy的区别-
- Strcpy和Strncpy的区别
- Strcpy和Strncpy的区别
- strcpy 和 strncpy的区别
- strcpy和strncpy的区别
- strcpy()和strncpy()的区别
- strcpy和strncpy的区别
- Strcpy和Strncpy的区别
- strcpy和strncpy的区别
- zoj1005 广搜
- 常备十大开源工具
- 杭电ACM1003 求最大子序列和问题
- JavaScript实现mop新闻动态图
- 通过onmouseover实现图片的变化 选项卡
- strcpy,strncpy和strncpy_s的区别
- 乱码问题解决方法
- 字符串函数 值的互换
- 正则表达式详解
- 用js实现复选框的反选和全选和全不选
- hdu 2089 不要62
- Communicate between objects
- JSTL标准标签库
- EI收录中国期刊目录 各个版本的含义及收录例子-12年初版