Endian-independent binary IO utilities for C
at main 575 B view raw
1#define bini_libc_names 2#include <bini.c> 3 4const char *msg1 = "Hello, World!"; 5const char *msg2 = "Ping pong!"; 6 7void write(bstream *bs) 8{ 9 bputstr(bs, msg1); 10 bputstr(bs, msg2); 11} 12 13void read(bstream *bs) 14{ 15 char msg[BUFSIZ]; 16 size_t n = breadstr(bs, msg); 17 printf("msg1=%.*s\n", (int)n, msg); 18 n = breadstr(bs, msg); 19 printf("msg2=%.*s\n", (int)n, msg); 20} 21 22int main(void) 23{ 24 bstream *bs = bnew(); 25 write(bs); 26# ifdef x_writebin 27 { 28 FILE *fp = fopen("out.bin", "wb"); 29 fwrite(bs->buffer, 1, bs->len, fp); 30 fclose(fp); 31 } 32# endif 33 bdump(stderr, bs); 34 read(bs); 35 bclose(bs); 36}