#include #include #include #include #include main(int argc, char * argv[]) { int in,out; unsigned short inbuf[3]; unsigned int outbuf[2]; int rc; while (1) { rc = read(STDIN_FILENO, inbuf, sizeof(inbuf)); if (rc == 0) break; if (rc != sizeof(inbuf)) { printf("input read failed\n"); exit(1); } #if 0 outbuf[0] = inbuf[0] | ((inbuf[1] & 077) << 12); outbuf[1] = (inbuf[2] << 6) | ((inbuf[1] >> 6) & 077); #else outbuf[0] = (inbuf[0] << 6) | ((inbuf[1] >> 6) & 077); outbuf[1] = inbuf[2] | ((inbuf[1] & 077) << 12); #endif if (write(STDOUT_FILENO, outbuf, sizeof(outbuf)) != sizeof(outbuf)) { printf("output write failed\n"); exit(1); } } }