전체 글

전체 글

    memmove

    헤더 파일 사용 목적 [C언어/함수] - memcpy memcpy 헤더 파일 사용 목적 메모리 B를 특정 길이(byte 단위) 만큼 메모리 A에 복사한다. 프로토타입과 매개변수 void *memcpy(void *dest, const void *src, size_t n); 1. void *dest : src를 복사해서 넣고자 하는 주.. hasensprung.tistory.com memcpy와 같은 기능을 수행하지만, 따로 버퍼를 만들어서 그곳에 저장한 후 옮기는 과정을 거치기 때문에 메모리가 중첩되는 것을 방지할 수 있다. 예를 들어, memcpy(str + 1, str, 10); 의 경우에는 str이 온전히 옮겨질 수 없다. (한번 그려보며 이해하면 편할 것이다.) 하지만 memmove에서는 중첩과 상..

    memccpy

    헤더 파일 사용 목적 [C언어/함수] - memcpy memcpy 헤더 파일 사용 목적 메모리 B를 특정 길이(byte 단위) 만큼 메모리 A에 복사한다. 프로토타입과 매개변수 void *memcpy(void *dest, const void *src, size_t n); 1. void *dest : src를 복사해서 넣고자 하는 주.. hasensprung.tistory.com memcpy를 구현하지만, 중간에 특정 문자를 만나면 중단하고 그다음 주소를 반환하게 된다. 즉, 특정 크기의 바이트만큼 메모리 B를 메모리 A에 복사하다가 특정 문자를 만나면 중단하고 그다음 주소를 반환하는 것이다. c를 만나지 않는다면, 특정 크기만큼 복사되고 NULL 포인터 값을 반환한다. 프로토타입과 매개변수 void *m..

    memcpy

    헤더 파일 사용 목적 메모리 B를 특정 길이(byte 단위) 만큼 메모리 A에 복사한다. 프로토타입과 매개변수 void *memcpy(void *dest, const void *src, size_t n); 1. void *dest : src를 복사해서 넣고자 하는 주소 2. const void *src : 복사 대상 주소 3. size_t n : 복사 하고자 하는 크기(byte단위) 반환값 dest의 첫 주소값 함수의 원리 이해를 돕기 위해 같은 동작을 하는 함수를 만든 것입니다. void*ft_memcpy(void *dest, const void *src, size_t n) { unsigned inti; i = 0; if (n == 0 || dest == src) // 복사하고자 하는 길이가 0이거나 ..

    memchr

    헤더 파일 사용 목적 지정한 메모리 범위 내에서 특정 문자를 찾는다 프로토타입과 매개변수 void *memchr(const void *s, int c, size_t n); 1. const void *s = 문자 c를 찾고자 하는 주소의 시작 지점 2. int c = 찾고자 하는 문자(ascii) 3. size_t n = 주소의 시작 지점부터 찾고자 하는 범위 (byte 단위) 반환값 1. 범위 내에 찾고자 하는 문자와 일치하는 지점이 있으면 그 주솟값을 반환 2. 범위 내에 찾고자 하는 문자가 없으면 NULL 포인터를 반환 함수의 원리 이해를 돕기 위해 같은 동작을 하는 함수를 만든 것입니다. void*ft_memchr(const void *s, int c, size_t n) { unsigned int..

    memcmp

    헤더 파일 사용 목적 두개의 메모리 주소값을 지정한 길이 만큼 비교 프로토타입과 매개변수 int memcmp(const void *s1, const void *s2, size_t n); 1. const void *s1 = 비교할 메모리 A 2. const void *s2 = 비교할 메모리 B 3. size_t n = 비교할 길이(byte 단위) 반환값 1. 비교하는 동안 두 메모리가 완벽하게 일치하면 '0'을 반환 2. 두 메모리가 일치하지 않은 지점이 있으면 *s1 - *s2를 반환 함수의 원리 이해를 돕기 위해 같은 동작을 하는 함수를 만든 것입니다. intft_memcmp(const void *s1, const void *s2, size_t n) { unsigned inti; i = 0; while..

    strlen

    헤더 파일 사용 목적 문자열의 길이를 조사 (마지막 NULL은 길이에 들어가지 않는다) 프로토타입과 매개변수 size_t strlen(const char *str); 1. const char *str = 길이를 조사할 문자열 함수의 원리 이해를 돕기 위해 같은 동작을 하는 함수를 만든 것입니다. size_tft_strlen(const char *str) { size_tcount; count = 0; while (*str) // str이 NULL이 나오기 전까지 { str++; count++; // count를 늘려나감 } return (count); // count를 반환 } 사용 예시 #include #include intmain(void) { char*str = "abcde"; intlength; l..

    2. IP 주소의 구조는?

    2. IP 주소의 구조는?

    [개발 기초/Network] - 1. IP 주소란?1. IP 주소란?네트워크의 시작이다! 이번 장에서는 IP주소의 가장 기초적인 개념부터 시작하겠다. 장을 거듭해 나갈 수록 기본 개념을 알지 못하면 헛갈리는 게 많아질 것이므로 '정독'과 더불어 이해가 가지 hasensprung.tistory.com 그럼 IP주소는 어떤 체계를 가지고 있을까? IPv4 형식의 IP주소를 통해 알아보자 IP주소의 기본 구조 IPv4의 경우 32bit의 길이로 구성되어 있으며, OOO.OOO.OOO.OOO의 형태를 가지고 있다.우리가 많이 보았던 이 여기에 해당된다. 쉽게 말하면 의 형태인 것이다.그리고 2진법으로 표기하면 다음과 같다.11000000 (8bit)10101000 (8bit)00000003 (8bit)00000..

    1. IP 주소란?

    1. IP 주소란?

    네트워크의 시작이다! 이번 장에서는 IP주소의 가장 기초적인 개념부터 시작하겠다. 장을 거듭해 나갈 수록 기본 개념을 알지 못하면 헛갈리는 게 많아질 것이므로 '정독'과 더불어 이해가 가지 않는 부분은 아래의 참고자료를 확인하거나 댓글에 질문을 해서 알아나갔으면 좋겠다. IP 주소란? "IP 주소(영어: Internet Protocol address, IP address, 표준어: 인터넷규약주소)는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호이다. 만약 서버가 들어가지 않으면 IP가 안전하지 않다고 한다. 네트워크에 연결된 장치가 라우터이든 일반 서버이든, 모든 기계는 이 특수한 번호를 가지고 있어야 한다. 이 번호를 이용하여 발신자를 대신하여 메시지가 전송되고 ..