ref: 9635fb9d97bf57897f14e5832197b20087c0fde2
dir: /imf.c/
#include <u.h>
#include <libc.h>
void
main(int argc, char **argv)
{
int n, m, fd;
uchar buf[65536], wse[4] = {0x01, 0x20, 0, 0};
fd = 0;
if(argc > 1){
fd = open(argv[1], OREAD);
if(fd < 0)
sysfatal("open: %r");
}
if(read(fd, buf, 2) != 2)
sysfatal("short read: %r");
m = buf[1]<<8 | buf[0];
if(m & 3)
sysfatal("invalid imf size");
write(1, wse, sizeof wse);
while(n = read(fd, buf, m > sizeof buf ? sizeof buf : m), n > 0){
write(1, buf, n);
m -= n;
}
exits(nil);
}