1234567891011121314151617181920212223242526272829303132333435363738 |
- #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);
- }
|