다른 파일에서 생성된 원시 이진 바이트 입력을 프로그램에 제공하려면 어떻게 해야 합니까?

다른 파일에서 생성된 원시 이진 바이트 입력을 프로그램에 제공하려면 어떻게 해야 합니까?

2개의 프로그램이 있습니다:

x- 사용자에게 입력하라는 메시지를 표시합니다 stdin.

binary- 무언가를 에 인쇄합니다 stdout. 인쇄하는 내용은 터미널 인코딩(UTF-8)에서 완전히 지원하지 않는 다양한 원시 바이너리 바이트로 구성됩니다. 그래서 제대로 실행할 수 없습니다. 입력의 일부가 (NOP)로 구성되어 터미널이 대체 문자로 대체되기 때문에 ./binary | ./x잘못된 입력이 발생합니다 .x\x90

x다른 파일(이 경우 binary) 에서 생성된 원시 바이너리 데이터를 프로그램에 어떻게 제공합니까 ?

답변1

당신은 당신이 설명한 대로 정확히 수행했습니다 ./binary | ./x. 귀하의 터미널이 귀하가 입력한 문자에 만족하지 않는다고 해서 반드시 그런 \x90것은 아닙니다 ./x.

테스트로 시도해 보면 ./binary | od -a해당 프로그램이 터미널에 문제를 일으키는 바이트를 읽을 수 있음을 알 수 있습니다. 대안으로 od -x및를 사용해 볼 수도 있습니다 (이러한 옵션이 이진 데이터를 나타내는 방식을 선호할 수도 있음).od -bod -a

관련 정보