it-source

어떤 프로그램이 주어진 파일에 C 배열을 생성합니까?

criticalcode 2023. 6. 30. 22:25
반응형

어떤 프로그램이 주어진 파일에 C 배열을 생성합니까?

저는 과거에 어떤 파일이든 가져와서 그 파일을 나타내는 C 배열을 출력으로 생성하는 프로그램을 본 것을 기억합니다. 그것은 경우에 따라 별도의 파일을 배포하지 못하게 할 것입니다.어떤 유닉스/리눅스 프로그램이 그렇게 합니까?

xxd -i

대용량 파일의 경우 텍스트로 변환한 다음 컴파일러가 다시 구문 분석하도록 하는 것은 비효율적이고 불필요합니다.사용하다objcopy대신:

objcopy -I binary -O elf32-i386 stuff stuff.o

x86이 아닌 플랫폼의 경우 필요에 따라 출력 아키텍처를 조정합니다.그런 다음 프로그램에 연결하면 다음과 같이 액세스할 수 있습니다.

extern char _binary_stuff_start[], _binary_stuff_end[];
#define SIZE_OF_STUFF (_binary_stuff_end - _binary_stuff_start)

...

foo(_binary_stuff_start[i]);
hexdump -v -e '16/1 "0x%x," "\n"'

stdin에서 C와 같은 배열을 생성하지만 선언, 중괄호 또는 올바른 형식이 없습니다.

이것이 Unix/Linux 질문이라는 것은 알지만 Windows에서 동일한 작업을 수행하려는 사용자는 누구나 Bin2H를 사용할 수 있습니다.

가장 쉬운 방법은 다음과 같습니다.

xxd -i -a filename

언급URL : https://stackoverflow.com/questions/1155578/which-program-creates-a-c-array-given-any-file

반응형