| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| #include <unistd.h> | |
| #ifndef BUFSIZ | |
| # define BUFSIZ 4096 | |
| #endif | |
| #undef BUFSIZ | |
| # define BUFSIZ 64 | |
| int main (void) | |
| { | |
| short ibuff[BUFSIZ], obuff[BUFSIZ]; | |
| int rc, i, len; | |
| while ((rc = read (0, ibuff, sizeof (ibuff))) > 0) { | |
| memset (obuff, 0, sizeof (obuff)); | |
| for (i = 0; i < (rc + 1) / 2; i++) { | |
| obuff[i] = ibuff[i ^ 1]; | |
| } | |
| len = (rc + 1) & ~1; | |
| if (write (1, obuff, len) != len) { | |
| perror ("read error"); | |
| return (EXIT_FAILURE); | |
| } | |
| memset (ibuff, 0, sizeof (ibuff)); | |
| } | |
| if (rc < 0) { | |
| perror ("read error"); | |
| return (EXIT_FAILURE); | |
| } | |
| return (EXIT_SUCCESS); | |
| } |