Endian-independent binary IO utilities for C
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}