cincludec-preprocessor

"#include" a text file in a C program as a char[]


Is there a way to include an entire text file as a string in a C program at compile-time?

something like:

obtaining a little program that prints on stdout "This is a little text file"

At the moment I used an hackish python script, but it's butt-ugly and limited to only one variable name, can you tell me another way to do it?


Solution

  • I'd suggest using (unix util)xxd for this. you can use it like so

    $ echo hello world > a
    $ xxd -i a
    

    outputs:

    unsigned char a[] = {
      0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x0a
    };
    unsigned int a_len = 12;