⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataproc.c~

📁 这是一个linux下基于MiniGUI的手机界面设计源码
💻 C~
📖 第 1 页 / 共 3 页
字号:
		if( TempStore( TYPE_OF_DWXX, QUERY ) == 0 )		{	//try to lock the mutex			printf("Enter tryLock.\n");			if( (ret=Pthread_mutex_trylock( &fLock.DW_FLOCK)) == 0 ) 			{				//Add newly message to file_DWXX				printf("Return value is %d \n",ret);				printf("**********Add newly message to file_DWXX************\n");				fp = Fopen( "DWXX.data","a+");				Fwrite( &newMesg.dwxx,LEN_DWXX,1,fp );				Fclose( fp );				AddCount( INBOX, TYPE_OF_DWXX , 1);				Pthread_mutex_unlock( &fLock.DW_FLOCK);			}			else if( ret == EBUSY )			{				printf("First time bulid DWXX temp file!\n");				TempStore( TYPE_OF_DWXX, CREAT );			}		}						break;	case	TYPE_OF_TXXX:				//If there is no temp file in current directory,we record it to INDEX file directly		if( TempStore( TYPE_OF_TXXX, QUERY ) == 0 )		{	//try to lock the mutex			printf("Enter tryLock.\n");			if( (ret=Pthread_mutex_trylock( &fLock.TXINDEX_FLOCK)) == 0 ) 			{				//Add newly message to file_TXXX				printf("Return value is %d \n",ret);				printf("**********Add newly message to file_TXINDEX************\n");				printf(" MainIndex is %d \n ",newMesg.txIndex.mainIndex);				fp = Fopen( "TXINDEX.data","a+");				Fwrite( &newMesg.txIndex,LEN_TXINDEX,1,fp );				Fclose( fp );				AddCount( INBOX, TYPE_OF_TXXX , 1);				//printf("Current mesg count is %d\n",GetCount(INBOX,TYPE_OF_TXXX));				AddCountUnRead( 1 );				Pthread_mutex_unlock( &fLock.TXINDEX_FLOCK);			}			else if( ret == EBUSY )			{				printf("First time bulid TXXX temp file!\n");				TempStore( TYPE_OF_TXXX, CREAT );			}		}		break;	case	TYPE_OF_ICXX:		if( TempStore( TYPE_OF_ICXX, QUERY ) == 0 )		{	//try to lock the mutex			printf("Enter tryLock.\n");			if( (ret=Pthread_mutex_trylock( &fLock.IC_FLOCK)) == 0 ) 			{				//Add newly message to file_ICXX				printf("Return value is %d \n",ret);				printf("**********Add newly message to file_ICXX************\n");				fp = Fopen( "ICXX.data","w+");				Fwrite( &newMesg.icxx,LEN_ICXX,1,fp );				Fclose( fp );				Pthread_mutex_unlock( &fLock.IC_FLOCK);			}			else if( ret == EBUSY )			{				printf("First time bulid ICXX temp file!\n");				TempStore( TYPE_OF_ICXX, CREAT );			}		}				break;	case	TYPE_OF_ZJXX:		break;	case	TYPE_OF_SJXX:		break;	case	TYPE_OF_BBXX:		if( TempStore( TYPE_OF_BBXX, QUERY ) == 0 )		{	//try to lock the mutex			printf("Enter tryLock.\n");			if( (ret=Pthread_mutex_trylock( &fLock.BB_FLOCK)) == 0 ) 			{				//Add newly message to file_BBXX				printf("Return value is %d \n",ret);				printf("**********Add newly message to file_BBXX************\n");				fp = Fopen( "BBXX.data","w+");				Fwrite( &newMesg.bbxx,LEN_BBXX,1,fp );				Fclose( fp );				Pthread_mutex_unlock( &fLock.BB_FLOCK);			}			else if( ret == EBUSY )			{				printf("First time bulid BBXX temp file!\n");				TempStore( TYPE_OF_BBXX, CREAT );			}		}		break;	case	TYPE_OF_FKXX:		//If there is no temp file in current directory,we can record it to main file directly		if( TempStore( TYPE_OF_FKXX, QUERY ) == 0 )		{	//try to lock the mutex			printf("Enter tryLock.\n");			if( (ret=Pthread_mutex_trylock( &fLock.FK_FLOCK)) == 0 ) 			{				//Add newly message to FKXX.data				printf("Return value is %d \n",ret);				printf("**********Add newly message to FKXX.data************\n");				fp = Fopen( "FKXX.data","a+");				Fwrite( &newMesg.fkxx,LEN_FKXX,1,fp );				Fclose( fp );				AddCount( INBOX, TYPE_OF_FKXX , 1);				Pthread_mutex_unlock( &fLock.FK_FLOCK);			}			else if( ret == EBUSY )			{				printf("First time bulid FKXX temp file!\n");				TempStore( TYPE_OF_FKXX, CREAT );			}		}		break;	}//End of switch}void 	MergeRecords( MESGTYPE mesgType ){	int i;	FILE *fp;	struct stat buf;	/* Before we load the data from main data file */ 	/* we shall firstly merge the temp file to it  */	printf("Enter function MergeRecords!\n");	switch( mesgType )	{	case	TYPE_OF_DWXX: 				if( stat( "DWtmp1.data",&buf ) == 0 )//file DWtmp1 exist		{			Pthread_mutex_lock( &fLock.DWtmp1_FLOCK );			printf("Lock temp1 now.\n");			//Add all the newly messages in the temp file1 to main data file 			loadedMesg.tmpLocInfo = (LOCINFO  *)malloc( LEN_LOCINFO * tmpDWXX1);			printf("Address is %lX\n",loadedMesg.tmpLocInfo);			fp = Fopen( "DWtmp1.data","r+");			//perror("Open");			for( i=0; i<tmpDWXX1; i++)
     				if( fread( &( (loadedMesg.tmpLocInfo)[i].dwxx), LEN_DWXX, 1, fp) != 1)
     				{
       				if( feof(fp))
       					{
         					Fclose(fp);
         					break;
       					}
       				perror("File read error!");
     				}				else				{					(loadedMesg.tmpLocInfo)[i].index = i+1;					printf("Index is %d.\n",(loadedMesg.tmpLocInfo)[i].index);					printf("Tmp File content:Hour %d Min %d SRCID %lX\n",loadedMesg.tmpLocInfo[i].dwxx.hour,loadedMesg.tmpLocInfo[i].dwxx.minute,loadedMesg.tmpLocInfo[i].dwxx.srcID );								}			Fclose( fp );			fp = Fopen( "DWXX.data","a+");			for(  i= 0; i< tmpDWXX1; i++ )				Fwrite( &( (loadedMesg.tmpLocInfo)[i].dwxx),LEN_DWXX,1,fp );			Fclose( fp );					remove( "DWtmp1.data");			tmpDWXX1 = 0;			free( loadedMesg.tmpLocInfo );			Pthread_mutex_unlock( &fLock.DWtmp1_FLOCK );		}		else if( stat( "DWtmp2.data",&buf ) == 0 )//file DWtmp2 exist		{			Pthread_mutex_lock( &fLock.DWtmp2_FLOCK );			//Add all the newly messages in the temp file2 to main data file 			loadedMesg.tmpLocInfo = (LOCINFO  *)malloc( LEN_LOCINFO * tmpDWXX1);			fp = Fopen( "DWtmp2.data","r+");			for( i=0; i<tmpDWXX2; i++)
     				if( fread( &( (loadedMesg.tmpLocInfo)[i].dwxx), LEN_DWXX, 1, fp) != 1)
     				{
       				if( feof(fp))
       					{
         					Fclose(fp);
         					break;
       					}
       				perror("File read error!");
     				}					else				{					(loadedMesg.tmpLocInfo)[i].index = i+1;					printf("Index is %d.\n",(loadedMesg.tmpLocInfo)[i].index);					printf("Tmp File content:Hour %d Min %d SRCID %lX\n",loadedMesg.tmpLocInfo[i].dwxx.hour,loadedMesg.tmpLocInfo[i].dwxx.minute,loadedMesg.tmpLocInfo[i].dwxx.srcID );								}			Fclose( fp );			fp = Fopen( "DWXX.data","a+");			for(  i= 0; i< tmpDWXX2; i++ )				Fwrite( &( (loadedMesg.tmpLocInfo)[i].dwxx),LEN_DWXX,1,fp );			Fclose( fp );			remove( "DWtmp2.data");			free( loadedMesg.tmpLocInfo );			tmpDWXX2 = 0;			Pthread_mutex_unlock( &fLock.DWtmp2_FLOCK );		}		break;	case	TYPE_OF_TXXX:		if( stat( "TXtmp1.data",&buf ) == 0 )//file TXtmp1 exist		{			Pthread_mutex_lock( &fLock.TXtmp1_FLOCK );			printf("Lock TXtmp1 now.\n");			//Add all the newly messages in the temp file1 to main data file 			loadedMesg.tmpCommInfo = (COMMINFO  *)malloc( LEN_COMMINFO * tmpTXXX1);			printf("Address is %lX\n",loadedMesg.tmpCommInfo);			fp = Fopen( "TXtmp1.data","r+");			//perror("Open");			for( i=0; i<tmpTXXX1; i++)
     				if( fread( &((loadedMesg.tmpCommInfo)[i].txIndex), LEN_TXINDEX, 1, fp)!= 1)
     				{
       				if( feof(fp))
       					{
         					Fclose(fp);
         					break;
       					}
       				perror("File read error!");
     				}				else				{					(loadedMesg.tmpCommInfo)[i].index = i+1;					printf("Index is %d.\n",(loadedMesg.tmpCommInfo)[i].index);					printf("Tmp File content:Hour %d Min %d SRCID %lX\n",loadedMesg.tmpCommInfo[i].txIndex.hour,loadedMesg.tmpCommInfo[i].txIndex.minute,loadedMesg.tmpCommInfo[i].txIndex.srcID );								}			Fclose( fp );			fp = Fopen( "TXINDEX.data","a+");			for(  i= 0; i< tmpTXXX1; i++ )				Fwrite( &( (loadedMesg.tmpCommInfo)[i].txIndex),LEN_TXINDEX,1,fp );			Fclose( fp );			AddCountUnRead( tmpTXXX1 );					remove( "TXtmp1.data");			tmpTXXX1 = 0;			free( loadedMesg.tmpCommInfo );			Pthread_mutex_unlock( &fLock.TXtmp1_FLOCK );		}		else if( stat( "TXtmp2.data",&buf ) == 0 )//file TXtmp2 exist		{			Pthread_mutex_lock( &fLock.TXtmp2_FLOCK );			//Add all the newly messages in the temp file2 to main data file 			loadedMesg.tmpCommInfo = (COMMINFO  *)malloc( LEN_COMMINFO * tmpTXXX1);			fp = Fopen( "TXtmp2.data","r+");			for( i=0; i<tmpTXXX2; i++)
     				if( fread( &((loadedMesg.tmpCommInfo)[i].txIndex), LEN_TXINDEX, 1, fp) != 1)
     				{
       				if( feof(fp))
       					{
         					Fclose(fp);
         					break;
       					}
       				perror("File read error!");
     				}					else				{					(loadedMesg.tmpCommInfo)[i].index = i+1;					printf("Index is %d.\n",(loadedMesg.tmpCommInfo)[i].index);					printf("Tmp File content:Hour %d Min %d SRCID %lX\n",loadedMesg.tmpCommInfo[i].txIndex.hour,loadedMesg.tmpCommInfo[i].txIndex.minute,loadedMesg.tmpCommInfo[i].txIndex.srcID );								}			Fclose( fp );			fp = Fopen( "TXINDEX.data","a+");			for(  i= 0; i< tmpTXXX2; i++ )				Fwrite( &( (loadedMesg.tmpCommInfo)[i].txIndex),LEN_TXINDEX,1,fp );			Fclose( fp );			AddCountUnRead( tmpTXXX2 );			remove( "TXtmp2.data");			free( loadedMesg.tmpCommInfo );			tmpTXXX2 = 0;			Pthread_mutex_unlock( &fLock.TXtmp2_FLOCK );		}		break;	case	TYPE_OF_ICXX:		if( stat( "ICtmp1.data",&buf ) == 0 )//file ICtmp1 exist		{			Pthread_mutex_lock( &fLock.ICtmp1_FLOCK );			printf("Lock temp1 now.\n");			loadedMesg.tmpICInfo = (ICINFO  *)malloc( LEN_ICINFO * tmpICXX1);			printf("Address is %lX\n",loadedMesg.tmpICInfo);			fp = Fopen( "ICtmp1.data","r+");			if( fread( &( (loadedMesg.tmpICInfo)[0].icxx), LEN_ICXX, 1, fp) != 1)
     			{
       			if( feof(fp))
       				{
         				Fclose(fp);
         				break;
       				}
       			perror("File read error!");
     			}			else			{				printf("Tmp File content:servFrequency %X SRCID %lX\n",loadedMesg.tmpICInfo[0].icxx.servFrequency,loadedMesg.tmpICInfo[0].icxx.srcID );								}			Fclose( fp );			fp = Fopen( "ICXX.data","w+");			Fwrite( &( (loadedMesg.tmpICInfo)[i].icxx),LEN_ICXX,1,fp );			Fclose( fp );					remove( "ICtmp1.data");			tmpICXX1 = 0;			free( loadedMesg.tmpICInfo );			Pthread_mutex_unlock( &fLock.ICtmp1_FLOCK );		}		else if( stat( "ICtmp2.data",&buf ) == 0 )//file ICtmp2 exist		{			Pthread_mutex_lock( &fLock.ICtmp2_FLOCK );			//Add all the newly messages in the temp file2 to main data file 			loadedMesg.tmpICInfo = (ICINFO  *)malloc( LEN_ICINFO * tmpICXX1);			fp = Fopen( "ICtmp2.data","r+");
     			if( fread( &( (loadedMesg.tmpLocInfo)[i].dwxx), LEN_DWXX, 1, fp) != 1)
     			{
       			if( feof(fp))
       				{
         				Fclose(fp);
         				break;
       				}
       			perror("File read error!");
     			}				else			{				printf("Tmp File content:servFrequency %X SRCID %lX\n",loadedMesg.tmpICInfo[0].icxx.servFrequency,loadedMesg.tmpICInfo[0].icxx.srcID );								}			Fclose( fp );			fp = Fopen( "ICXX.data","w+");			Fwrite( &( (loadedMesg.tmpICInfo)[0].icxx),LEN_ICXX,1,fp );			Fclose( fp );			remove( "ICtmp2.data");			free( loadedMesg.tmpICInfo );			tmpICXX2 = 0;			Pthread_mutex_unlock( &fLock.ICtmp2_FLOCK );		}		break;	case	TYPE_OF_ZJXX:		break;	case	TYPE_OF_SJXX:		break;	case	TYPE_OF_BBXX:		if( stat( "BBtmp1.data",&buf ) == 0 )//file BBtmp1 exist		{			Pthread_mutex_lock( &fLock.BBtmp1_FLOCK );			printf("Lock temp1 now.\n");			loadedMesg.tmpBBInfo = (BBINFO  *)malloc( LEN_BBINFO * tmpBBXX1);			printf("Address is %lX\n",loadedMesg.tmpBBInfo);			fp = Fopen( "BBtmp1.data","r+");			if( fread( &( (loadedMesg.tmpBBInfo)[0].bbxx), LEN_BBXX, 1, fp) != 1)
     			{
       			if( feof(fp))
       				{
         				Fclose(fp);
         				break;
       				}
       			perror("File read error!");
     			}			else			{				printf("Tmp File content: SRCID %lX\n",loadedMesg.tmpBBInfo[0].bbxx.srcID );								}			Fclose( fp );			fp = Fopen( "BBXX.data","w+");			Fwrite( &( (loadedMesg.tmpBBInfo)[i].bbxx),LEN_BBXX,1,fp );			Fclose( fp );					remove( "BBtmp1.data");			tmpBBXX1 = 0;			free( loadedMesg.tmpBBInfo );			Pthread_mutex_unlock( &fLock.BBtmp1_FLOCK );		}		else if( stat( "BBtmp2.data",&buf ) == 0 )//file BBtmp2 exist		{			Pthread_mutex_lock( &fLock.BBtmp2_FLOCK );			//Add all the newly messages in the temp file2 to main data file 			loadedMesg.tmpBBInfo = (BBINFO  *)malloc( LEN_BBINFO * tmpBBXX1);			fp = Fopen( "BBtmp2.data","r+");
     			if( fread( &( (loadedMesg.tmpBBInfo)[i].bbxx), LEN_BBXX, 1, fp) != 1)
     			{
       			if( feof(fp))
       				{
         				Fclose(fp);
         				break;
       				}
       			perror("File read error!");
     			}				else			{				printf("Tmp File content: SRCID %lX\n",loadedMesg.tmpBBInfo[0].bbxx.srcID );				}			Fclose( fp );			fp = Fopen( "BBXX.data","w+");			Fwrite( &( (loadedMesg.tmpBBInfo)[0].bbxx),LEN_BBXX,1,fp );			Fclose( fp );			remove( "BBtmp2.data");			free( loadedMesg.tmpBBInfo );			tmpBBXX2 = 0;			Pthread_mutex_unlock( &fLock.BBtmp2_FLOCK );		}		break;	case	TYPE_OF_FKXX:		if( stat( "FKtmp1.data",&buf ) == 0 )//file FKtmp1 exist		{			Pthread_mutex_lock( &fLock.FKtmp1_FLOCK );			printf("Lock temp1 now.\n");			//Add all the newly messages in the temp file1 to main data file 			loadedMesg.tmpFkInfo = (FKINFO  *)malloc( LEN_FKINFO * tmpFKXX1);			printf("Address is %lX\n",loadedMesg.tmpFkInfo);			fp = Fopen( "FKtmp1.data","r+");			//perror("Open");			for( i=0; i<tmpFKXX1; i++)
     				if( fread( &( (loadedMesg.tmpFkInfo)[i].fkxx), LEN_FKXX, 1, fp) != 1)
     				{
       				if( feof(fp))
       					{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -