[C/C++] Binary data 와 null-terminated string


[C/C++] Binary data 와 null-terminated string

도.등. 최근에 있었던 일이다. 서버로부터 전달 받은 hash 데이터이 다음부터는 서버 hash 라고 하겠다 와 자체 생성한 hash 데이터를 비교하는 부분에서 문제가 있었다. 서버 hash를 다른 변수에 저장하는 과정에서 문자열이 잘려서 저장되는 현상이었다. expected: 4f8f37b4c81203a17bfc00bdadaa7c0b9a4db66814edce26d3c43e12587dbdasc received: 4f8f37b4c81203a17bfc 당연히 저 `00` 이 굉장히 의심스러웠고, 어떤 이유로 인해 null 로 인식된 듯 했다. 그 이유를 찾아내기 위해 코드를 분석해보니, 1. 서버 hash 는 binary data 로 전달받는다. 2. binary data 를 strcpy 하여 옮겨 저장한다. 3. 이 때 `0` 을 null 로 인식하여 문자열이 잘린다. 이런 이유였다. 즉, strcpy 한다? 는 것은 null-terminated string 으로 다루겠다. 는 말과 ...



원문링크 : [C/C++] Binary data 와 null-terminated string