does have example of code can write binary file. , code can read binary file , output screen. looking @ examples can write file ok when try read file not outputting correctly.
reading , writing binary files pretty same other file, difference how open it:
unsigned char buffer[10]; file *ptr; ptr = fopen("test.bin","rb"); // r read, b binary fread(buffer,sizeof(buffer),1,ptr); // read 10 bytes our buffer you said can read it, it's not outputting correctly... keep in mind when "output" data, you're not reading ascii, it's not printing string screen:
for(int = 0; i<10; i++) printf("%u ", buffer[i]); // prints series of bytes writing file pretty same, exception you're using fwrite() instead of fread():
file *write_ptr; write_ptr = fopen("test.bin","wb"); // w write, b binary fwrite(buffer,sizeof(buffer),1,write_ptr); // write 10 bytes our buffer since we're talking linux.. there's easy way sanity check. install hexdump on system (if it's not on there) , dump file:
mike@mike-virtualbox:~/c$ hexdump test.bin 0000000 457f 464c 0102 0001 0000 0000 0000 0000 0000010 0001 003e 0001 0000 0000 0000 0000 0000 ... now compare output:
mike@mike-virtualbox:~/c$ ./a.out 127 69 76 70 2 1 1 0 0 0 hmm, maybe change printf %x make little clearer:
mike@mike-virtualbox:~/c$ ./a.out 7f 45 4c 46 2 1 1 0 0 0 hey, look! data matches now*. awesome, must reading binary file correctly!
*note bytes swapped on output data correct, can adjust sort of thing
Comments
Post a Comment