strncpy解析
来源:互联网 发布:淘宝店铺年费 编辑:程序博客网 时间:2024/06/05 19:22
首先说下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版本并不是标准库,所以,不推荐使用
0 0
- strncpy解析
- strncpy
- strncpy
- strncpy
- strncpy()
- strncpy
- strncpy
- strncpy
- strncpy
- strncpy
- strncpy
- strncpy
- strncpy
- strncpy
- strncpy()
- strncpy
- C标准库函数strncpy用法解析
- c语言字符串函数之strcpy,strcat,strncpy,strncat函数解析
- python学习例程1-helloword
- android AutoCompleteTextView 实现输入提示
- STM32F10xxx支持三种复位
- qnx之resource manager(三)
- 2016-7-13 杂感
- strncpy解析
- 获取Windows版本
- Android-x86_64 - iptables -L - filter - nat - mangle
- React-native 布局相关笔记
- java基础知识总结
- linux命令详解(arm交叉编译器)
- VC++多线程tcp connect扫描
- NSOperationQueue
- Linux多台主机批量执行命令