Skip to content
Snippets Groups Projects
xway-swap-bytes.c 647 B
Newer Older
  • Learn to ignore specific revisions
  • #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);
    }