memcpy, memccpy函数实现——string.h库函数
来源:互联网 发布:sql join inner join 编辑:程序博客网 时间:2024/06/05 06:30
函数实现:
信息来自RHEL,man page:MEMCPY(3) Linux Programmer's Manual MEMCPY(3)NAME memcpy - copy memory areaSYNOPSIS #include <string.h> void *memcpy(void *dest, const void *src, size_t n);DESCRIPTION The memcpy() function copies n bytes from memory area src to memory area dest. The memory areas must not overlap. Use memmove(3) if the memory areas do overlap.RETURN VALUE The memcpy() function returns a pointer to dest.
memcpy()函数实现:
0.函数原型:
#include <string.h>void *memcpy(void *dest, const void *src, size_t n);
1.参数:
src:指向源内存指针。
dest:指向目标内存指针。
n:拷贝字节数
2.返回值:
返回一个目标内存区的指针dest
3.功能描述:
memcpy函数将src指针指向的内存区的前n个字节数据拷贝到dest指向的内存区内。但是要求src和dest指向区域不能重叠,否则返回结果将是未定义的。
4.实现:
void *my_memcpy(void *dest, const void *src, size_t n){ void *result = dest; //参数判断 if(NULL == dest || NULL == src || 0 > n){ fprintf(stderr, "error\n"); return NULL; } //循环拷贝直到第n个值 while(--n){ *(char *)dest = *(char *)src; dest = (char *)dest + 1; src = (char *)src + 1; } return result;}
信息来自RHEL,man page:MEMCCPY(3) Linux Programmer's Manual MEMCCPY(3)NAME memccpy - copy memory areaSYNOPSIS #include <string.h> void *memccpy(void *dest, const void *src, int c, size_t n);DESCRIPTION The memccpy() function copies no more than n bytes from memory area src to memory area dest, stopping when the character c is found. If the memory areas overlap, the results are undefined.RETURN VALUE The memccpy() function returns a pointer to the next character in dest after c, or NULL if c was not found in the first n characters of src.
memccpy()函数实现:
0.函数原型:
#include <string.h>void *memccpy(void *dest, const void *src, int c, size_t n);
1.参数:
src:指向源内存指针。
dest:指向目标内存指针。
n:拷贝字节数。
c:指定字符。
2.返回值:
memccpy()如果在src的前n个字节中找到字符c,函数将返回一个指向dest中字符c之后的第一个字符的指针。如果没找到将返回NULL,同时拷贝结束。
3.功能描述:
memccpy()函数实现将src指针指向第二内存区的前n个字节的内容拷贝到dest指向的内存区,但是如果在src的前n字节中招到了字符c,将只拷贝c和之前的字符,并且返回指向dest中刚拷贝字符c之后的第一个字符的指针,否则返回NULL。
4.实现:
void *my_memccpy(void *dest, const void *src, int c, size_t n){ void *result = NULL ; char *dest_func = (char *)dest; char *src_func = (char *)src ; while(NULL == dest_func || NULL == src_func || 0 > n){ fprintf(stderr, "error\n"); return NULL; } while(n--){ *dest_func = *src_func; dest_func++; if(c == *src_func){ break; } src_func++; } if(0 < n){ result = dest_func; }else{ result = NULL; } return result;}
=============文章结束==============
小菜总结,如有不当,欢迎批评!
4 0
- memcpy, memccpy函数实现——string.h库函数
- strcpy,strncpy函数实现——string.h库函数
- strlen函数实现——string.h库函数
- strcat,strncat函数实现——string.h库函数
- strcmp,strncmp函数实现——string.h库函数
- memmove函数实现——string.h库函数
- memcmp函数实现——string.h库函数
- strchr, strrchr函数实现——string.h库函数
- memchr函数实现——string.h库函数
- memset函数实现——string.h库函数
- memcpy,memccpy,memmove函数
- memcpy,memccpy,memmove函数
- memcpy,memccpy,memmove函数
- c库函数memccpy实现
- memmove、memcpy和memccpy简介及函数的实现
- strcasecmp,strncasecmp函数实现——strings.h库函数
- memccpy函数源码实现
- C++库函数---<string.h>字符串处理函数
- 利用R语言计算国内两个地点的距离
- 如何将Chromium Embedded Framework (CEF) 嵌入到你自己的程序中
- Ubuntu14.04下手动安装Firefox的Flash插件
- C6416启动失败
- 对存取控制的认识
- memcpy, memccpy函数实现——string.h库函数
- leetcode---Add Digits
- 深入理解JavaScript的变量作用域
- Majority Element
- 神经科学方面的sci杂志和影响因子
- asp连接sql server
- python显示中文
- zookeeper 大量连接断开重连原因排查
- android Camera