softbus.c

来自「基于linux下的故障录波前置程序」· C语言 代码 · 共 147 行

C
147
字号
#include <stdio.h>#include <ctype.h>#include <string.h>#include <sys/types.h>#include <unistd.h>#include <stdlib.h>#include <fcntl.h>#include <errno.h>#include<sys/stat.h>#include<pthread.h>static  pthread_t thrd1;void SoftDogFun(void ){		FILE * f_c;	int mypid;        char buffer[100];        char name[20];        char name1[20];        char name2[20];        char name3[20];        char fotbuffer[100];	char szBuffer[100];        pid_t pd;	char targetname[] = "forenet";        int flag;	                     while(1)        {		if(system("ps -a> softbus_file")==-1)		{			return;		}				f_c=fopen("softbus_file", "r");		if(!f_c)		{			return;		}		fgets(buffer,100,f_c);				while(!feof(f_c))		{			fgets(buffer,100,f_c);			sscanf(buffer,"%d %s %s %s",&mypid,name,name1,name2);						if(!strcmp(targetname,name2))			{				flag = 1;				break;			}		}		if(!flag)		{			system("/usr/forenet");		}						fclose(f_c);				if(system("rm -f softbus_file")==-1)		{						return;		}		sleep(5);	}	return;}void GB_CheckMySlef(char *Killname){		FILE * f_c;	int mypid;        char buffer[100];        char name[20];        char name1[20];        char name2[20];        char name3[20];        char fotbuffer[100];	char szBuffer[100];        pid_t pd;        char *killname;	        killname=Killname;        pd =getpid();	if(system("ps -a> search_file_dog")==-1)	{		return;	}		f_c=fopen("search_file_dog", "r");	if(!f_c)	{		return;	}        fgets(buffer,100,f_c);	        while(!feof(f_c))        {                fgets(buffer,100,f_c);                sscanf(buffer,"%d %s %s %s",&mypid,name,name1,name2);                                if(!strcmp(killname,name2))                {                        if(mypid!=pd)                        {                                sprintf(fotbuffer,"kill -9 %d",mypid);                                system(fotbuffer );			                        }                        else                                continue;                }        }			fclose(f_c);		if(system("rm -f search_file_dog")==-1)	{				return;	}	return;}int main(){	GB_CheckMySlef("SoftBus");	int ret = pthread_create(&thrd1, NULL, (void *(*)(void*))SoftDogFun, NULL);	if(ret)	{		return -1;	}		pthread_join(thrd1,NULL);	return 0;}

⌨️ 快捷键说明

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