c question: *printf'ing arrays

Tom Evans tevans.uk at googlemail.com
Tue Jun 30 16:49:34 UTC 2009


On Tue, 2009-06-30 at 18:12 +0200, Alexander Best wrote:
> hi there,
> 
> i need to output the header of a file to stdout. the header looks like this:
> 
>     struct Header
>     {
>         u_int8_t rom_entry[4];
>         u_int8_t nintendo_logo[156];
>         u_char game_title[12];
>         u_char game_code[4];
>         u_char maker_code[2];
>         u_int8_t fixed_val;
>         u_int8_t unit_code;
>         u_int8_t device_type;
>         u_int8_t reserved_area1[7];
>         u_int8_t software_version;
>         u_int8_t complement_check;
>         u_int8_t reserved_area2;
>         u_int8_t ram_entry[4];
>         u_int8_t boot_mode;
>         u_int8_t slave_id;
>         u_int8_t unused_area[26];
>         u_int8_t joybus_entry[4];
>     };
> 
> if there a way to use printf or some other variant of *printf without using
> sizeof()-loops for all the arrays?
> 
> cheers.

None of your arrays are dynamically sized, so surely 
        write(fd, &hdr, sizeof(Header));
would do the trick?

Cheers

Tom



More information about the freebsd-hackers mailing list