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

📄 sysmonitor.cxx.bak

📁 HPunix下资源监视程序,查看监视进程的CPU、内存的参数
💻 BAK
字号:
#include <strings.h>#include <stdio.h>#include <signal.h>#include <string.h>#include <pthread.h>#include "sysmonitor.h"#include "myptop.h"#include <netdb.h>#include <stdlib.h>#include <unistd.h>#include <cc2000_pthread.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <sys/semaphore.h>int moni_interval;int nodenumber;extern struct NETMESSAGE *net_message_ptr;extern struct net_name *net_name_ptr;extern struct proc_name *proc_name_ptr;extern struct part_naem *part_name_ptr;extern struct PTHREADMESSAGE *pthread_message_ptr;extern struct netrecord *prev_net_ptr,*cur_net_ptr;struct NODEINFO nodeinfo_ptr;//NODEINFO nodeinfobuf[10];void	send_message_toserver();void     ctrlchandler(int);int	sockfd=-1;sem_t *sem;extern struct pst_processor *psp,*psp_last;int main(int argc,char *argv[]){	pthread_t send_thread_id;	pthread_t recv_thread_id;	pthread_t check_status_id;	char    ipaddress[30],buff[512];	char    descr[100];	int     length=-1;	struct  sockaddr_in tcp_cli_addr;	int     channel_srv,count=0;			signal(SIGINT,ctrlchandler);	signal(SIGPIPE,SIG_IGN);		if (argc==2)	{		int temp=atoi(argv[1]);		if((temp>0)&&(temp<11))		{			moni_interval=temp;		}		else		{			printf("moni_interval must be a integer between 0 and 11!\n");			exit(1);		}	}	else	{		printf("Usage:%s moni_interval\n",argv[0]);		printf("moni_interval is a integer between 0 and 11!\n");		exit(1);			}		bzero(hostname,HOSTLEN);	gethostname(hostname,HOSTLEN);	if(pthread_create(&send_thread_id,pthread_attr_default,(pthread_startroutine_t)send_message_toserver,(pthread_addr_t)0)<0)	{	        perror("create  send_message_toserver  error");	        exit(-1);	}	printf("send pthread create succeed!\n");	//create semaphore	int flags,value=1;	mode_t  mode=0777;	flags=O_RDWR|O_CREAT;	sem=sem_open("/data/users/osa/bin/monitor_sem",flags,mode,value);	//init send message pthread	while(1)	{		if((!strcmp(hostname,"scd1"))||(!(strcmp(hostname,"scd2"))))		{			printf("start init DCEPM database                 ................\n");			dcepm_init();			//printf("Driverinfo_use_flag=%d \n",Driverinfo_use_flag);			//printf("Netinfo_use_flag=%d \n",Netinfo_use_flag);			//printf("Sysinfo_use_flag=%d \n",Sysinfo_use_flag);			//printf("Pthread_use_flag=%d \n",Pthreadinfo_use_flag);			strcpy(descr,"This is server");			sockfd=srv_init("sysmonitor",0,descr);		 	if(sockfd < 0)                 	{                        	printf("this sockfd < 0 error !!!\n");                        	exit(0);                 	}			for(;;)			{			//////////////////////////								if(count==0)				{					if(pthread_create(&check_status_id,pthread_attr_default,(pthread_startroutine_t)check_status							,(pthread_addr_t)moni_interval)<0)	  				{	       					perror("create check_status()  error");	        				exit(-1);	  				}					else					{						count=1;					}									}								///////////////////////				//channel_srv=accept(sockfd,(struct sockaddr *)&tcp_cli_addr,&length);				channel_srv=srv_accept(sockfd,(struct sockaddr *)&tcp_cli_addr,&length,descr);				//printf(" channel_srv ==  %d   ---- \n",channel_srv);				if(channel_srv<0)				{					printf("channel_srv < 0 error!!!!\n");					continue;				}				strcpy(ipaddress,inet_ntop(AF_INET,&tcp_cli_addr.sin_addr,buff,sizeof(buff)));				printf("ipaddress =  %s \n",ipaddress);				if(pthread_create(&recv_thread_id,pthread_attr_default,(pthread_startroutine_t)recv_message_fromcli,(pthread_addr_t)channel_srv)<0)				{	        			perror("create  recv_message_toserver  error"); 					exit(-1);				}				printf("recv_thread_id create is :%d \n",recv_thread_id);			}		}		sleep(10);	}	return(0);}void ctrlchandler(int){	int retcode=-1;	retcode=dcepm_tb_close();	close(sockfd);	shutdown(sockfd,2);	sem_unlink("/data/users/osa/bin/monitor_sem");	free(psp);	free(psp_last);	free(pthread_message_ptr);	free(proc_name_ptr);	free(net_message_ptr);	free(net_name_ptr);	free(part_name_ptr);	free(prev_net_ptr);	free(cur_net_ptr);	printf("\n GOODBYE\n");	exit(0);}

⌨️ 快捷键说明

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