NUL 문자 및 ANSI-C 따옴표

NUL 문자 및 ANSI-C 따옴표

ANSI-C 인용 문자열을 사용하여 프로그램에 이진 문자열을 보내려고 합니다. 이것은 잘 작동합니다:

echo $'\x23\x51\x66\x39\x01\x5f\x2f' | cat -v
# output: #Qf9^A_/

그러나 데이터에 NUL 문자(ASCII 코드 0)가 있으면 문자열이 종료됩니다.

echo $'\x23\x00\x66\x39\x01\x5f\x2f' | cat -v
# output: #

C의 문자열은 null로 종료된다는 것을 알고 있으므로 이 참조 메서드에도 비슷한 제약 조건이 적용되는 것으로 추측됩니다.

내 프로그램에 ASCII 0을 보낼 수 있는 방법이 있나요?

답변1

printf대신 사용해 보세요 echo.

$ printf "\x23\x00\x66\x39\x01\x5f\x2f" | od -c
0000000   #  \0   f   9 001   _   /

관련 정보