/*
* add.c -- Suma dos seņales. * * Este fichero fuente puede encontrarse en: * http://www.ace.ual.es/~vruiz/docencia/redes/practicas/add.c * * Compilar escribiendo: * gcc add.c -o add spin.o * * gse. 2006 */ #include <stdio.h> #include "spin.h" char **_argv; FILE* open_file(char *file_name) { FILE *file_descriptor = fopen(file_name,"rb"); if(!file_descriptor) { fprintf(stderr,"%s: unable to open %s\n",_argv[0],file_name); exit(1); } return file_descriptor; } main(int argc, char *argv[]) { if(argc<3) { fprintf(stderr,"%s signal_1.float signal_2.float > signal_1+2.float\n", argv[0]); } else { _argv = argv; FILE *s1,*s2; s1 = open_file(argv[1]); s2 = open_file(argv[2]); int samples = 0; for(;;) { float sample1, sample2, add; fread(&sample1,1,sizeof(float),s1); if(feof(s1)) break; fread(&sample2,1,sizeof(float),s2); if(feof(s2)) break; add = sample1 + sample2; fwrite(&add,1,sizeof(float),stdout); samples++; spin(); } fprintf(stderr,"%s: number of samples = %d\n",argv[0],samples); } return 0; } |