00001 #define BUFFSIZE 128 00002 #include <stdio.h> 00003 #include <stdlib.h> 00004 #include <unistd.h> 00005 #include <string.h> 00009 int main(int argc, char *argv[]){ 00010 short buffer[BUFFSIZE]; 00011 short buffer1[BUFFSIZE/2]; 00012 short buffer2[BUFFSIZE/2]; 00013 int i = 0; 00014 int k = 0; 00015 memset(buffer,0,BUFFSIZE*sizeof(short)); 00016 memset(buffer1,0,BUFFSIZE/2*sizeof(short)); 00017 memset(buffer2,0,BUFFSIZE/2*sizeof(short)); 00018 while (-1!=read(STDIN_FILENO,buffer,BUFFSIZE)) { 00019 for (i = 0; i < BUFFSIZE; i++,i++) { 00020 int k = i/2; 00021 buffer1[k] = buffer[i]; 00022 buffer2[k] = buffer[i+1]; 00023 } 00024 write(STDOUT_FILENO,buffer1,BUFFSIZE/2*sizeof(short)); 00025 write(STDERR_FILENO,buffer2,BUFFSIZE/2*sizeof(short)); 00026 } 00027 return 0; 00028 } 00029