개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.31 03:23

sodium_memcmp 함수에 대한 질문

목록
  • 디버깅의신 6일 전 2025.05.31 03:23
  • 32
    1
제가 공부하고 있는 네트워크 프로그래밍에서 리소스 제한을 고려한 비교 함수인 sodium_memcmp를 사용하고 있으나, 이 함수의 반환값에 대한 이해가 부족합니다.

sodium_memcmp 함수의 반환값은 0, 1, -1 중 하나가 될 수 있습니다.

- 0은 두 비교 대상이 같을 때 반환하는 값을 의미합니다.
- 1은 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 값을 의미합니다.
- -1은 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 값을 의미합니다.

이러한 반환값의 의미를 이해하기 위해, 다음 예시를 살펴보았습니다.

c

#include 



int main() {

    unsigned char str1[] = "Hello";

    unsigned char str2[] = "Hello";

    unsigned char str3[] = "World";



    int cmp1 = sodium_memcmp(str1, str2, strlen(str1));

    int cmp2 = sodium_memcmp(str1, str3, strlen(str1));



    if (cmp1 == 0) {

        printf("str1과 str2는 같습니다.n");

    } else if (cmp1 == 1) {

        printf("str1 > str2n");

    } else {

        printf("str1 < str2n");

    }



    if (cmp2 == 0) {

        printf("str1과 str3는 같습니다.n");

    } else if (cmp2 == 1) {

        printf("str1 > str3n");

    } else {

        printf("str1 < str3n");

    }



    return 0;

}



위의 예시를 실행하면, str1과 str2는 같고 str1은 str3보다 작다는 출력이 됩니다.

이러한 반환값의 의미를 이해하고 싶습니다.

위의 예시에서 sodium_memcmp 함수의 반환값은 cmp1과 cmp2에 저장됩니다. cmp1의 반환값은 0이고 cmp2의 반환값은 -1입니다.

이러한 반환값은 두 비교 대상이 같을 때 0, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 값을 1, 첫 번째 비교 대상이 두 번째 비교 대상보다

    댓글목록

    profile_image
    나우호스팅  6일 전



    sodium_memcmp 함수의 반환값은 두 비교 대상의 크기를 비교하는 것이지, 실제 값의 크기를 비교하는 것이 아닙니다.

    cmp1의 반환값은 0이기 때문에 두 비교 대상인 str1과 str2는 같다고 출력됩니다.

    cmp2의 반환값은 -1이기 때문에 첫 번째 비교 대상인 str1이 두 번째 비교 대상인 str3보다 작다고 출력됩니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    예를 들어, 두 비교 대상이 모두 5바이트인 경우, sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에 0을 반환합니다.

    반면에, 첫 번째 비교 대상이 5바이트이고 두 번째 비교 대상이 3바이트인 경우, sodium_memcmp 함수는 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환합니다.

    마찬가지로, 첫 번째 비교 대상이 3바이트이고 두 번째 비교 대상이 5바이트인 경우, sodium_memcmp 함수는 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    따라서, sodium_memcmp 함수의 반환값을 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환값의 의미를 이해하기 위해서는, 두 비교 대상의 크기를 비교하는 것이 아니라, 실제 값의 크기를 비교하는 것과는 다른 개념인 것을 이해해야 합니다.

    sodium_memcmp 함수는 두 비교 대상의 크기를 비교하기 때문에, 두 비교 대상이 같을 때 0을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 큰 경우 1을 반환하고, 첫 번째 비교 대상이 두 번째 비교 대상보다 작은 경우 -1을 반환합니다.

    이러한 반환

    2025-05-31 03:24

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 25,699건 / 44 페이지

검색

게시물 검색