memmove
memmove() 은 src 에서 target 으로 메모리를 복사하는 함수입니다.
이름만 보면 memcpy 와 다른 무언가가 있을 것 같은데 실제 동작 결과는 별다를 것이 없습니다.
함수원형
보시다시피 memcpy() 의 원형과 동일하게 생겼습니다.
다시 설명하면
const char *dest => 타겟 버퍼
const void *src => 소스 버퍼
size_t n => 복사할 길이
1. 가장 기본적인 사용예제
memmove() 은 src 에서 target 으로 메모리를 복사하는 함수입니다.
이름만 보면 memcpy 와 다른 무언가가 있을 것 같은데 실제 동작 결과는 별다를 것이 없습니다.
함수원형
#include <string.h> void *memmove(const char *dest, const void *src, size_t n); |
보시다시피 memcpy() 의 원형과 동일하게 생겼습니다.
다시 설명하면
const char *dest => 타겟 버퍼
const void *src => 소스 버퍼
size_t n => 복사할 길이
1. 가장 기본적인 사용예제
#include <stdio.h> #include <string.h> #include <stdlib.h> #define BUF_SIZE 128 static void prt_hex(char *buf, int size) { int i = 0; for( i = 0; i < BUF_SIZE; ++i ){ if( (i % 16) ){ printf("%c ", buf[i-1]); }else{ printf("%c\n", buf[i-1]); } } printf("\n") } int main(int argc, char *argv[]) { char *dst; char *src; void *tmp; dst = (char *)malloc(BUF_SIZE); src = (char *)malloc(BUF_SIZE/10); memset(dst, 'a', BUF_SIZE); memset(src, '-', BUF_SIZE/10); printf("=================================\n"); printf("Before memory status [ dst, src ]\n"); printf("=================================\n"); printf("(dst dump)\n"); prt_hex(dst, BUF_SIZE); printf("(src dump)\n"); prt_hex(src, BUF_SIZE/10); printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"); printf("\n\n"); printf("=================================\n"); printf("After memory status [ dst, src ]\n") printf("=================================\n") tmp = memmove(dst + BUF_SIZE/10, src, BUF_SIZE/10); printf("(dst dump)\n"); prt_hex(dst, BUF_SIZE); printf("(src dump)\n"); prt_hex(src, BUF_SIZE/10); printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"); printf("\n\n"); return 0; } |
'development' 카테고리의 다른 글
[kernel] 개발한 함수를 외부에 공개하는 법 (1) | 2011.11.08 |
---|---|
[kernel] 커널에 새로운 작업 디렉토리를 추가하고 싶다면 (0) | 2011.11.07 |
[kernel] struct list_head (0) | 2011.10.26 |
[program] scandir() (0) | 2011.10.26 |
[kernel] 커널 컴파일 완료후 꼭 해줘야 하는것. (0) | 2011.10.21 |