#include #include void main(int, char**){ vlong u, a, n; uchar *l, *r, *b = nil; a = u = 0; while(9){ if(a - u < 1024UL){ b = realloc(b, a += 0x100000UL); if(b == nil) sysfatal("realloc: %r"); } n = read(0, b + u, a - u); if(n < 1) break; u += n; } if(n) sysfatal("read: %r"); if(u & 3) sysfatal("read not a multiple of four bytes"); b = realloc(b, u); if(b == nil) sysfatal("realloc: %r"); l = b; r = b + u - 4; while(l < r){ for(n = 0; n < 4; n++){ a = l[n]; l[n] = r[n]; r[n] = a; } l += 4; r -= 4; } if(write(1, b, u) != u) sysfatal("write: %r"); exits(nil); }