当前位置:  技术问答>linux和unix

进来看看,怎样监控一个程序开始运行的消息?

    来源: 互联网  发布时间:2015-08-07

    本文导语:  需要些一个程序A,当他运行时可以监控某个程序B的运行,例如A运行后,这时运行B,则A能够以所能达到的最快的速度知道B的运行。     这该怎么做呢?那位能够给一段样例程序。谢谢? | ...

需要些一个程序A,当他运行时可以监控某个程序B的运行,例如A运行后,这时运行B,则A能够以所能达到的最快的速度知道B的运行。
    这该怎么做呢?那位能够给一段样例程序。谢谢?

|
让A不停的检测进程中有没有B就行了

long* find_pid_by_name(char* pidName)

DIR *dir; 
struct dirent *next; 
long* pidList=NULL; 
int i=0; 

dir = opendir("/proc"); 
if (!dir) 

fprintf(stderr, "Cannot open /procn"); 
return NULL; 



while ((next = readdir(dir)) != NULL) 

FILE *status; 
char filename[READ_BUF_SIZE]; 
char buffer[READ_BUF_SIZE]; 
char name[READ_BUF_SIZE]; 

/* Must skip ".." since that is outside /proc */ 
if (strcmp(next->d_name, "..") == 0) 
continue; 

/* If it isn't a number, we don't want it */ 
if (!isdigit(*next->d_name)) 
continue; 

sprintf(filename, "/proc/%s/status", next->d_name); 
if (! (status = fopen(filename, "r")) ) 

continue; 

/* Read first line in /proc/?pid?/status */ 
if (fgets(buffer, READ_BUF_SIZE-1, status) == NULL) 

fclose(status); 
continue; 

fclose(status); 

/* Buffer should contain a string like "Name: binary_name" */ 
sscanf(buffer, "%*s %s", name); 
if (strcmp(name, pidName) == 0) 

pidList=realloc( pidList, sizeof(long) * (i+2)); 
pidList[i++]=strtol(next->d_name, NULL, 0); 



if (pidList) 

pidList[i]=0; 

else 

pidList=realloc( pidList, sizeof(long)); 
pidList[0]=-1; 


closedir(dir); 
return pidList; 
}

|
用信号试试

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ###########谁有JMS的例子(发组播消息的)或者相关的经验,请进来帮帮我,一定送高分!!!
  • 求助!!! 超简单问题... 大虾们进来,菜鸟也进来!!
  • 又一个初学者的困惑!如果您是个大虾,请你一定要进来看看,指点迷津!如果您也是个初学者,那么您也一定要进来,也许我们有一样的遭遇!
  • 请问LINUX C与C++哪一个更有意义去发展,请高手与专家进来提出宝贵意见,快点进来啦!!!!!!!!!!!!
  • 呵呵!只要搞和喜欢嵌入式开发的同仁并高手都进来!!!!进来有分,不够再加!
  • 自己做了网站的朋友们进来!没有的也进来看看
  • 初次使用VMWare,高兴,进来拿分。用过的进来提建议,没用的看看。
  • 我初学JAVA,大家愿意交朋友的进来看看!留QQ的给分啊!
  • Patrick_DK(疾风摩郎) 请进来,给你分
  • Slack Linux使用者,进来签个名!
  • 不知道那位写过显示进度条,进来指导一下!
  • 出于noby对我的热心,请你进来,我再给你分。
  • 光驱如何mount进来?
  • gfzhx(小小) :再 请进来接分!!!!!!!
  • gfzhx(小小) :请进来接分!!!!!!!
  • HyMaix解决了我的问题耶!进来拿分!!
  • 谢谢帮助,请yhlsyq1101进来收分!
  • 那个叫“ anonimousboy(stiwen)”的,给我聊天程序代码的再进来接分!
  • 那个叫“ anonimousboy(stiwen)”的,给我聊天程序代码的进来接分!
  • 如何知道还没mount进来的磁盘分区格式/大小
  • steptodream 进来救急一下,多谢


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3