#include <stdio.h> #include <pthread.h> #include <math.h> #include <errno.h> /* if( data1 < 0 && data2 < 0) date_mix = data1+data2 - (data1 * data2 / -(pow(2,16-1)-1)); else date_mix = data1+data2 - (data1 * data2 / (pow(2,16-1)-1)); */ typedef void* (*Func)(void*); typedef void* Para; int Pthread_create(Func func ,Para para) { pthread_t pid; if(0 != pthread_create(&pid,NULL,func,para)) { printf("pthread_create faile\n"); return -1; } pthread_detach(pid); return 0; } int main(int argc, char *argv[]) { FILE *fp1 = NULL; FILE *fp2 = NULL; FILE *fp3 = NULL; short int buf1 = 0; short int buf2 = 0; short int buf3 = 0; fp1 = fopen(argv[1],"r+"); if(NULL == fp1) { perror("\n"); printf("fopen fail-----1[%s]\n",argv[1]); return -1; } fp2 = fopen(argv[2],"r+"); if(NULL == fp2) { perror("\n"); printf("fopen fail-----2[%s]\n",argv[2]); return -1; } fp3 = fopen(argv[3],"w+"); if(NULL == fp3) { perror("\n"); printf("fopen fail-----3[%s]\n",argv[3]); return -1; } while(1) { if(1 != fread(&buf1,2,1,fp1)) { printf("fread fail\n"); //return -1; break; } if(1 != fread(&buf2,2,1,fp2)) { printf("fread fail\n"); //return -1; break; } if( buf1 < 0 && buf2 < 0) { buf3 = buf1+buf2 - (buf1 * buf2 / -(pow(2,16-1)-1)); } else { buf3 = buf1+buf2 - (buf1 * buf2 / (pow(2,16-1)-1)); } if(1 != fwrite(&buf3,2,1,fp3)) { printf("fwrite faile\n"); return -1; } printf("mix-------------\n"); } printf("mix over\n"); fclose(fp1); fclose(fp2); fclose(fp3); return 0; } |
|