So. I have been experimenting with fwrite().
On my system sizeof( int ) = 4.
I have an array of ints that contains: 1, 2, 3, 4, 5 and 6.
When i write it to a binaryfile and view it with hexdump I get:
0000000 0001 0000 0002 0000 0003 0000 0004 0000
0000010 0005 0000 0006 0000
0000018
Whats does it write zeroes between the 4byte values?
I think you’re misunderstanding how big a byte is in your output – 8 bits require two hexadecimal digits to be completely represented. One single
intfrom your example is:You might want to display as 32-bit data (or 8-bit data) rather than 16. That’s what makes your dump look weird.
I duplicated your binary file and ran
odwith a few different options. Hopefully you find the example enlightening:As you can see best from the 1- and 4-byte examples, I’m also on a little-endian machine, like you.