📄 dataproc.c~
字号:
#ifndef _DATAPROC_C_#define _DATAPROC_C_ 0#include "../DataProcessing/MySHM.h"#include "sysSrcInfo.h"/* Store the newcomming message to Temporary file 1 or 2*/int TempStore( MESGTYPE mesgType, TMPSTOREMODE mode){ int ret; FILE *fp; struct stat buf; printf("Enter TempStore.\n"); switch( mesgType ) { case TYPE_OF_DWXX: if( mode == CREAT ) { printf("**********Add newly message to file_DWtmp1************\n"); Pthread_mutex_trylock( &fLock.DWtmp1_FLOCK); fp = Fopen( "DWtmp1.data","a+"); Fwrite( &newMesg.dwxx,LEN_DWXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_DWXX , 1); tmpDWXX1++; printf("File DWtmp1 is %d\n",tmpDWXX1); Pthread_mutex_unlock( &fLock.DWtmp1_FLOCK ); return 1; } else if( mode == QUERY) { if( stat( "DWtmp1.data",&buf ) == 0 ) { //file DWtmp1 exist printf("File DWtmp1 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.DWtmp1_FLOCK)) == EBUSY ) { //Add newly message to file_DWtmp2 Pthread_mutex_trylock( &fLock.DWtmp2_FLOCK); printf("**********Add newly message to file_DWtmp2************\n"); fp = Fopen( "DWtmp2.data","a+"); Fwrite( &newMesg.dwxx,LEN_DWXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_DWXX , 1); tmpDWXX2++; printf("tmpDWXX2 is %d\n",tmpDWXX2); Pthread_mutex_unlock( &fLock.DWtmp2_FLOCK); return 1; } else if( ret == 0 ) { //Add newly message to file_DWtmp1 printf("**********Add newly message to file_DWtmp1************\n"); fp = Fopen( "DWtmp1.data","a+"); Fwrite( &newMesg.dwxx,LEN_DWXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_DWXX , 1); tmpDWXX1++; printf("tmpDWXX1 is %d\n",tmpDWXX1); Pthread_mutex_unlock( &fLock.DWtmp1_FLOCK ); return 1; } } else if( stat( "DWtmp2.data",&buf ) == 0 )//file DWtmp2 exist { printf("File DWtmp2 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.DWtmp2_FLOCK )) == EBUSY ) { //Add newly message to file_DWtmp1 Pthread_mutex_trylock( &fLock.DWtmp1_FLOCK); printf("**********Add newly message to file_DWtmp1************\n"); fp = Fopen( "DWtmp1.data","a+"); Fwrite( &newMesg.dwxx,LEN_DWXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_DWXX , 1); tmpDWXX2++; printf("tmpDWXX2 is %d\n",tmpDWXX2); Pthread_mutex_unlock( &fLock.DWtmp1_FLOCK); return 1; } else if( ret == 0) { //Add newly message to file_DWtmp2 printf("**********Add newly message to file_DWtmp2************\n"); fp = Fopen( "DWtmp2.data","a+"); Fwrite( &newMesg.dwxx,LEN_DWXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_DWXX , 1); tmpDWXX1++; printf("tmpDWXX1 is %d\n",tmpDWXX1); Pthread_mutex_unlock( &fLock.DWtmp2_FLOCK ); return 1; } } else { printf("Leave TempStore.\n"); return 0; } } break; case TYPE_OF_TXXX: if( mode == CREAT ) { printf("**********Add newly message to file_TXtmp1************\n"); Pthread_mutex_trylock( &fLock.TXtmp1_FLOCK); fp = Fopen( "TXtmp1.data","a+"); Fwrite( &newMesg.txIndex,LEN_TXINDEX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_TXXX , 1); tmpTXXX1++; printf("tmpTXXX1 is %d\n",tmpTXXX1); Pthread_mutex_unlock( &fLock.TXtmp1_FLOCK ); return 1; } else if( mode == QUERY) { if( stat( "TXtmp1.data",&buf ) == 0 ) { //file TXtmp1 exist printf("File F_TXtmp1 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.TXtmp1_FLOCK)) == EBUSY ) { //Add newly message to file_TXtmp2 Pthread_mutex_trylock( &fLock.TXtmp2_FLOCK); printf("**********Add newly message to file_TXtmp2************\n"); fp = Fopen( "TXtmp2.data","a+"); Fwrite( &newMesg.txIndex,LEN_TXINDEX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_TXXX , 1); tmpTXXX2++; printf("tmpDWXX2 is %d\n",tmpTXXX2); Pthread_mutex_unlock( &fLock.TXtmp2_FLOCK); return 1; } else if( ret == 0 ) { //Add newly message to file_TXtmp1 printf("**********Add newly message to file_TXtmp1************\n"); fp = Fopen( "TXtmp1.data","a+"); Fwrite( &newMesg.txIndex,LEN_TXINDEX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_TXXX , 1); tmpTXXX1++; printf("tmpTXXX1 is %d\n",tmpTXXX1); Pthread_mutex_unlock( &fLock.TXtmp1_FLOCK ); return 1; } } else if( stat( "TXtmp2.data",&buf ) == 0 )//file DWtmp2 exist { printf("File F_TXtmp2 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.TXtmp2_FLOCK )) == EBUSY ) { //Add newly message to file_TXtmp1 Pthread_mutex_trylock( &fLock.TXtmp1_FLOCK); printf("**********Add newly message to file_DWtmp1************\n"); fp = Fopen( "TXtmp1.data","a+"); Fwrite( &newMesg.txIndex,LEN_TXINDEX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_TXXX , 1); tmpTXXX2++; printf("tmpTXXX2 is %d\n",tmpTXXX2); Pthread_mutex_unlock( &fLock.TXtmp1_FLOCK); return 1; } else if( ret == 0) { //Add newly message to file_TXtmp2 printf("**********Add newly message to file_TXtmp2************\n"); fp = Fopen( "TXtmp2.data","a+"); Fwrite( &newMesg.dwxx,LEN_TXINDEX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_TXXX , 1); tmpTXXX1++; printf("tmpTXXX1 is %d\n",tmpTXXX1); Pthread_mutex_unlock( &fLock.TXtmp2_FLOCK ); return 1; } } else { printf("Leave TempStore.\n"); return 0; } } break; case TYPE_OF_ICXX: if( mode == CREAT ) { printf("**********Add newly message to file_ICtmp1************\n"); Pthread_mutex_trylock( &fLock.ICtmp1_FLOCK); fp = Fopen( "ICtmp1.data","w+"); Fwrite( &newMesg.icxx,LEN_ICXX,1,fp ); Fclose( fp ); tmpICXX1++; printf("File ICtmp1 is %d\n",tmpICXX1); Pthread_mutex_unlock( &fLock.ICtmp1_FLOCK ); return 1; } else if( mode == QUERY) { if( stat( "ICtmp1.data",&buf ) == 0 ) { //file DWtmp1 exist printf("File ICtmp1 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.ICtmp1_FLOCK)) == EBUSY ) { //Add newly message to file_ICtmp2 Pthread_mutex_trylock( &fLock.ICtmp2_FLOCK); printf("**********Add newly message to file_ICtmp2************\n"); fp = Fopen( "ICtmp2.data","w+"); Fwrite( &newMesg.icxx,LEN_ICXX,1,fp ); Fclose( fp ); tmpICXX2++; printf("tmpICXX2 is %d\n",tmpICXX2); Pthread_mutex_unlock( &fLock.ICtmp2_FLOCK); return 1; } else if( ret == 0 ) { //Add newly message to file_ICtmp1 printf("**********Add newly message to file_ICtmp1************\n"); fp = Fopen( "ICtmp1.data","w+"); Fwrite( &newMesg.icxx,LEN_ICXX,1,fp ); Fclose( fp ); tmpICXX1++; printf("tmpICXX1 is %d\n",tmpICXX1); Pthread_mutex_unlock( &fLock.ICtmp1_FLOCK ); return 1; } } else if( stat( "ICtmp2.data",&buf ) == 0 )//file ICtmp2 exist { printf("File ICtmp2 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.ICtmp2_FLOCK )) == EBUSY ) { //Add newly message to file_ICtmp1 Pthread_mutex_trylock( &fLock.ICtmp1_FLOCK); printf("**********Add newly message to file_ICtmp1************\n"); fp = Fopen( "ICtmp1.data","w+"); Fwrite( &newMesg.icxx,LEN_ICXX,1,fp ); Fclose( fp ); tmpICXX2++; printf("tmpICXX2 is %d\n",tmpICXX2); Pthread_mutex_unlock( &fLock.ICtmp1_FLOCK); return 1; } else if( ret == 0) { //Add newly message to file_ICtmp2 printf("**********Add newly message to file_ICtmp2************\n"); fp = Fopen( "ICtmp2.data","w+"); Fwrite( &newMesg.icxx,LEN_ICXX,1,fp ); Fclose( fp ); tmpICXX1++; printf("tmpICXX1 is %d\n",tmpICXX1); Pthread_mutex_unlock( &fLock.ICtmp2_FLOCK ); return 1; } } else { printf("Leave TempStore.\n"); return 0; } } break; case TYPE_OF_ZJXX: break; case TYPE_OF_SJXX: break; case TYPE_OF_BBXX: if( mode == CREAT ) { printf("**********Add newly message to file_BBtmp1************\n"); Pthread_mutex_trylock( &fLock.BBtmp1_FLOCK); fp = Fopen( "BBtmp1.data","w+"); Fwrite( &newMesg.bbxx,LEN_BBXX,1,fp ); Fclose( fp ); tmpBBXX1++; printf("File BBtmp1 is %d\n",tmpBBXX1); Pthread_mutex_unlock( &fLock.BBtmp1_FLOCK ); return 1; } else if( mode == QUERY) { if( stat( "BBtmp1.data",&buf ) == 0 ) { //file BBtmp1 exist printf("File BBtmp1 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.BBtmp1_FLOCK)) == EBUSY ) { //Add newly message to file_BBtmp2 Pthread_mutex_trylock( &fLock.BBtmp2_FLOCK); printf("**********Add newly message to file_BBtmp2************\n"); fp = Fopen( "BBtmp2.data","w+"); Fwrite( &newMesg.bbxx,LEN_BBXX,1,fp ); Fclose( fp ); tmpBBXX2++; printf("tmpBBXX2 is %d\n",tmpBBXX2); Pthread_mutex_unlock( &fLock.BBtmp2_FLOCK); return 1; } else if( ret == 0 ) { //Add newly message to file_BBtmp1 printf("**********Add newly message to file_BBtmp1************\n"); fp = Fopen( "BBtmp1.data","w+"); Fwrite( &newMesg.bbxx,LEN_BBXX,1,fp ); Fclose( fp ); tmpBBXX1++; printf("tmpBBXX1 is %d\n",tmpBBXX1); Pthread_mutex_unlock( &fLock.BBtmp1_FLOCK ); return 1; } } else if( stat( "BBtmp2.data",&buf ) == 0 )//file BBtmp2 exist { printf("File BBtmp2 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.BBtmp2_FLOCK )) == EBUSY ) { //Add newly message to file_BBtmp1 Pthread_mutex_trylock( &fLock.BBtmp1_FLOCK); printf("**********Add newly message to file_BBtmp1************\n"); fp = Fopen( "BBtmp1.data","w+"); Fwrite( &newMesg.bbxx,LEN_BBXX,1,fp ); Fclose( fp ); tmpBBXX2++; printf("tmpBBXX2 is %d\n",tmpBBXX2); Pthread_mutex_unlock( &fLock.BBtmp1_FLOCK); return 1; } else if( ret == 0) { //Add newly message to file_BBtmp2 printf("**********Add newly message to file_BBtmp2************\n"); fp = Fopen( "BBtmp2.data","w+"); Fwrite( &newMesg.bbxx,LEN_BBXX,1,fp ); Fclose( fp ); tmpBBXX1++; printf("tmpBBXX1 is %d\n",tmpBBXX1); Pthread_mutex_unlock( &fLock.BBtmp2_FLOCK ); return 1; } } else { printf("Leave TempStore.\n"); return 0; } } break; case TYPE_OF_FKXX: if( mode == CREAT ) { printf("**********Add newly message to file_FKtmp1************\n"); Pthread_mutex_trylock( &fLock.FKtmp1_FLOCK); fp = Fopen( "FKtmp1.data","a+"); Fwrite( &newMesg.fkxx,LEN_FKXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_FKXX , 1); tmpFKXX1++; printf("File FKtmp1 is %d\n",tmpFKXX1); Pthread_mutex_unlock( &fLock.FKtmp1_FLOCK ); return 1; } else if( mode == QUERY) { if( stat( "FKtmp1.data",&buf ) == 0 ) { //file FKtmp1 exist printf("File FKtmp1 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.FKtmp1_FLOCK)) == EBUSY ) { //Add newly message to file_FKtmp2 Pthread_mutex_trylock( &fLock.FKtmp2_FLOCK); printf("**********Add newly message to file_FKtmp2************\n"); fp = Fopen( "FKtmp2.data","a+"); Fwrite( &newMesg.fkxx,LEN_FKXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_FKXX , 1); tmpFKXX2++; printf("tmpFKXX2 is %d\n",tmpFKXX2); Pthread_mutex_unlock( &fLock.FKtmp2_FLOCK); return 1; } else if( ret == 0 ) { //Add newly message to file_FKtmp1 printf("**********Add newly message to file_FKtmp1************\n"); fp = Fopen( "FKtmp1.data","a+"); Fwrite( &newMesg.fkxx,LEN_FKXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_FKXX , 1); tmpFKXX1++; printf("tmpFKXX1 is %d\n",tmpFKXX1); Pthread_mutex_unlock( &fLock.FKtmp1_FLOCK ); return 1; } } else if( stat( "FKtmp2.data",&buf ) == 0 )//file DWtmp2 exist { printf("File FKtmp2 exist!\n" ); if( (ret=Pthread_mutex_trylock( &fLock.FKtmp2_FLOCK )) == EBUSY ) { //Add newly message to file_FKtmp1 Pthread_mutex_trylock( &fLock.FKtmp1_FLOCK); printf("**********Add newly message to file_FKtmp1************\n"); fp = Fopen( "FKtmp1.data","a+"); Fwrite( &newMesg.fkxx,LEN_FKXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_FKXX , 1); tmpFKXX2++; printf("tmpFKXX2 is %d\n",tmpFKXX2); Pthread_mutex_unlock( &fLock.FKtmp1_FLOCK); return 1; } else if( ret == 0) { //Add newly message to file_FKtmp2 printf("**********Add newly message to file_FKtmp2************\n"); fp = Fopen( "FKtmp2.data","a+"); Fwrite( &newMesg.fkxx,LEN_FKXX,1,fp ); Fclose( fp ); AddCount( INBOX, TYPE_OF_FKXX , 1); tmpFKXX1++; printf("tmpFKXX1 is %d\n",tmpFKXX1); Pthread_mutex_unlock( &fLock.FKtmp2_FLOCK ); return 1; } } else { printf("Leave TempStore.\n"); return 0; } } break; }}/* Automatically write the new record to the appropriate file */void AutoRecord( MESGTYPE mesgType){ int ret; FILE *fp; printf("Enter AutoRecord.\n"); switch( mesgType ) { case TYPE_OF_DWXX: //If there is no temp file in current directory,we can record it to main file directly
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -