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

📄 testline.c

📁 这是一个进程通信和手机数据处理程序, 与以前发的手机界面一起构成一个简单手机系统,是我们做的第一个版本,供大家一起学习
💻 C
字号:
/* For DWXX */	arryLen = LoadData(TYPE_OF_DWXX,GetCount( TYPE_OF_DWXX) );	printf("*************************First time Load data****************************\n");	/* Debug */printf(" Address of the address array head is %lX.\n",loadedMesg.pLocInfo );	printf("Enter Sort now.\n");	/* Debug */Sort( SORT_BY_ADDRESS, loadedMesg.pLocInfo, arryLen );	queFilter.DESID = 46;	queFilter.sTime.hour=12;	queFilter.sTime.min=0;	queFilter.sTime.sec=0;	queFilter.eTime.hour=40;	queFilter.eTime.min=50;	queFilter.eTime.sec=32;		//loadedMesg.pLocInfo = (LOCINFO **)Filtrate( countDWXX, BY_LOCADDRSS,queFilter, loadedMesg.pLocInfo );	//BY_LOCTIME 	//loadedMesg.pLocInfo = (LOCINFO **)Filtrate( countDWXX, BY_BOTH,queFilter, loadedMesg.pLocInfo );	//PrintForTest( loadedMesg.pLocInfo );	//Delete( TYPE_OF_DWXX, SINGLEMODE, 2, (void **)loadedMesg.pLocInfo);	UnloadData( TYPE_OF_DWXX );	sleep(2);	LoadData(TYPE_OF_DWXX,GetCount( TYPE_OF_DWXX) );	printf("*************************Second time Load data****************************\n");	//printf("******************Delete mutiple mode************************\n");//for SendDatavoid  TestMainServ( void   )//int main(int argc, char **argv)
{
	int				i,fd,arryLen;	pthread_t			tid_produce[MAXNTHREADS], tid_Consume;	pthread_mutexattr_t	    	nready_mattr; 	pthread_mutexattr_t       curMesg_mattr;	pthread_condattr_t        condattr;	MYSHM 				*myshmPtr;	struct sched_param 		param;	int priority;	int newPrio=20;	//if (argc != 2)	//	err_quit("usage: ./MainServ <name> ");		/* open and map shared memory */	//shm_unlink(argv[1]);	shm_unlink("knight");	fd = shm_open("knight", O_RDWR | O_CREAT | O_EXCL, FILE_MODE);	myshmPtr = mmap(NULL, sizeof( MYSHM ), PROT_READ | PROT_WRITE,			   MAP_SHARED, fd, 0);	ftruncate(fd, sizeof( MYSHM ));	close(fd);	myshmPtr->nready = 0 ;	/* Use the default properties to initial the mutex lock during the time of data operation */	Pthread_mutex_init(&countDW_Mutex,NULL);	Pthread_mutex_init (&(fLock.DW_FLOCK),NULL);	Pthread_mutex_init (&(fLock.DWtmp1_FLOCK),NULL);	Pthread_mutex_init (&(fLock.DWtmp2_FLOCK),NULL);	Pthread_mutex_init(&countTXINDEX_Mutex,NULL);	Pthread_mutex_init(&countTXMAIN_Mutex,NULL);	Pthread_mutex_init (&(fLock.TXINDEX_FLOCK),NULL);	Pthread_mutex_init (&(fLock.TXtmp1_FLOCK),NULL);	Pthread_mutex_init (&(fLock.TXtmp2_FLOCK),NULL);	/* Initial the attribute of mutex and cond to be shared between the main progress and Daemon  */	Pthread_mutexattr_init(&curMesg_mattr );	Pthread_mutexattr_setpshared(  &curMesg_mattr,PTHREAD_PROCESS_SHARED );	Pthread_mutex_init(&myshmPtr->curMesg_mutex,&curMesg_mattr);	Pthread_mutexattr_destroy( &curMesg_mattr);	Pthread_mutexattr_init( &nready_mattr );	Pthread_mutexattr_setpshared( &nready_mattr,PTHREAD_PROCESS_SHARED );	Pthread_mutex_init(&myshmPtr->nready_mutex,&nready_mattr);	Pthread_mutexattr_destroy( &nready_mattr);	Pthread_condattr_init( &condattr);	Pthread_condattr_setpshared(  &condattr,PTHREAD_PROCESS_SHARED );	pthread_cond_init(&myshmPtr->cond,&condattr);	Pthread_condattr_destroy( &condattr);	/*初始化属性*/	pthread_attr_init(&attr);  	pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);	pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); 	memset( &tid_DatProcess, 0, sizeof(tid_DatProcess) );	/*	INITQUEUE( INBOX);	INITQUEUE( OUTBOX);	Pthread_create(&tid_Consume, &attr, Consume, (void *)myshmPtr);		sleep(5 );	loadArg.sType = INBOX;	loadArg.mesgType = TYPE_OF_TXXX;	loadArg.mesgCount = GetCount( TYPE_OF_TXXX);	CheckTidCount();	Pthread_create( &tid_DatProcess[tidCount], &attr, LoadData, NULL);*/	//LoadData(INBOX, TYPE_OF_TXXX,GetCount( TYPE_OF_TXXX) );		printf("Current total number of mesg is %d,Unread ones are %d\n",loadedMesg.countOfMesg,loadedMesg.countOfUnread);	printf("*************************First time Load data****************************\n");	/* Debug */printf(" Address of the address array head is %lX.\n",loadedMesg.pCommInfo );		queFilter.srcID = 2606;		/* Test Filatrate */	//loadedMesg.pCommInfo=(COMMINFO **)Filtrate(TYPE_OF_TXXX,loadedMesg.countOfMesg, BY_LOCADDRSS,queFilter, (void **)loadedMesg.pCommInfo );	//loadedMesg.pCommInfo=(COMMINFO **)Filtrate(TYPE_OF_TXXX,arryLen, BY_NEWEST3,queFilter, (void **)loadedMesg.pCommInfo );	//PrintForTest( NULL ,loadedMesg.pCommInfo );			//Delete( INBOX, TYPE_OF_TXXX, SINGLEMODE, 2, (void **)loadedMesg.pCommInfo);	//Delete( INBOX, TYPE_OF_TXXX, MUTIPLEMODE, 3, (void **)loadedMesg.pCommInfo);	//UnloadData( INBOX, TYPE_OF_TXXX );/*	sleep(5);	loadArg.sType = INBOX;	loadArg.mesgType = TYPE_OF_TXXX;	loadArg.mesgCount = GetCount( TYPE_OF_TXXX);	CheckTidCount();	Pthread_create( &tid_DatProcess[tidCount], &attr, LoadData, NULL);*/	//LoadData( INBOX, TYPE_OF_TXXX,GetCount( TYPE_OF_TXXX) );	printf("*************************Second time Load data****************************\n");	//printf("******************Delete mutiple mode************************\n");	//sleep(5);	exit(0);
}/* Test Filatrate */	//loadedMesg.pCommInfo=(COMMINFO **)Filtrate(TYPE_OF_TXXX,loadedMesg.countOfMesg, BY_LOCADDRSS,queFilter, (void **)loadedMesg.pCommInfo );	//loadedMesg.pCommInfo=(COMMINFO **)Filtrate(TYPE_OF_TXXX,arryLen, BY_NEWEST3,queFilter, (void **)loadedMesg.pCommInfo );		//Delete( INBOX, TYPE_OF_TXXX, SINGLEMODE, 2, (void **)loadedMesg.pCommInfo);	//Delete( INBOX, TYPE_OF_TXXX, MUTIPLEMODE, 3, (void **)loadedMesg.pCommInfo);		//sleep(5);	//LoadData( INBOX, TYPE_OF_TXXX,GetCount( TYPE_OF_TXXX) );

⌨️ 快捷键说明

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