#include #include #include main() { int n, w, t = 0; char buf[65536]; setmode(0, O_BINARY); setmode(1, O_BINARY); while ((n=read(0, buf, sizeof(buf))) > 0) { w=write(1, buf, n); if (w != n && w >= 0) { fprintf(stderr, "Woops! @%d: Wrote returned %d, expected to write %d, errno %d. Retrying!\n", t, w, n, errno); w=write(1, buf, n); if (w != n && w >= 0) { fprintf(stderr, "Ouch! @ %d: Wrote returned %d, expected to write %d, errno %d\n", t, w, n, errno); } } if (w < 0) { perror("write"); exit(1); } t += w; } if (n<0) { perror("read"); exit(1); } return 0; }