mempcpy、stpcpy和stpncpy的简介
来源:互联网 发布:淘宝女装店铺图片 编辑:程序博客网 时间:2024/05/23 01:39
mempcpy、stpcpy和stpncpy其实功能和memcpy、strcpy、strncpy的功能一样,区别在于前者返回的是复制之后的末尾地址,后者返回的是复制之后的起始地址。
头文件:string.h
函数名:void *mempcpy(void *dest, const void *src, size_t len);
功能:复制src的数据直到指定的字节数据(len)已经被复制完全到dest里面,返回的地址为dest随后的那一个字节
附上glibc-2.26里的mempcpy的原码:
/* Copy memory to memory until the specified number of bytes
has been copied, return pointer to following byte.
Overlap is NOT handled correctly. */
void *MEMPCPY (void *dest, const void *src, size_t len)
{
return memcpy (dest, src, len) + len;
}
函数名:char *stpcpy(char *dest, const char *src);
功能:复制src的数据到dest所指的地址处,返回dest里的NULL处。
附上glibc-2.26里的stpcpy的原码:
/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
char *STPCPY (char *dest, const char *src)
{
size_t len = strlen (src);
return memcpy (dest, src, len + 1) + len;
}
函数名:char *stpncpy(char *dest, const char *src, size_t n);
功能:复制src的数据到dest所指的地址处,返回dest里的NULL处或者是dest里的n+1处地址。
附上glibc-2.26里的stpncpy的原码:
/* Copy no more than N characters of SRC to DEST, returning the address of
the terminating '\0' in DEST, if any, or else DEST + N. */
char *STPNCPY (char *dest, const char *src, size_t n)
{
size_t size = __strnlen (src, n);
memcpy (dest, src, size);
dest += size;
if (size == n)
return dest;
return memset (dest, '\0', n - size);
}
- mempcpy、stpcpy和stpncpy的简介
- strcpy,stpcpy函数
- 字符串函数stpcpy
- strcpy,stpcpy函数
- Log4j的简介和使用
- syslogd和logrotate的简介
- httpwatch的简介和使用
- Session的简介和应用
- Session的简介和应用
- Session的简介和应用
- Session的简介和应用
- Applet和Servlet的简介
- PHP和MongoDB的简介
- ConditionVariable的简介和用法
- Terminator的安装和简介
- Oracle的简介和安装
- Samba的简介和配置
- Scrapy的简介和安装
- 百练 2811: 熄灯问题
- WIN10+GNS3环境,安装loopback虚拟网卡连接cloud
- apue第三章习题3.2 编写dup2功能相同的函数,要求不调用fcntl函数
- effective java同步访问共享的可变数据
- 线程池的使用
- mempcpy、stpcpy和stpncpy的简介
- 回调函数是什么鬼(java)
- 2017.8.15 杭电多校训练 Problem
- 接着学习,不要着急
- JS正则表达式及邮箱验证(I)
- python记录程序运行时间
- JavaScript中的闭包详解
- muduo源码学习(14)-网络库类库概述
- HTTP协议总结