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

请教如何获得运行的程序的名称?象MS的GetModuleFileName一样?

    来源: 互联网  发布时间:2015-02-21

    本文导语:  请教如何获得运行的程序的名称?象MS的GetModuleFileName一样? | 大家好,初学linux,请多指教。 我在应用中需要判断已知pid的进程的名字,还需要判断已知名字的进程是否在运行。 勉强写了个函数,请大家...

请教如何获得运行的程序的名称?象MS的GetModuleFileName一样?

|
大家好,初学linux,请多指教。
我在应用中需要判断已知pid的进程的名字,还需要判断已知名字的进程是否在运行。
勉强写了个函数,请大家多指导。
#include 
#include 
#include 
#include 
#include 
//此函数获取所有运行中进程的ID以及文件名,可以根据需要加上参数进行比较等
void GetAllProcessNameAndID()
{
        int i;
        char buf[256],temp[100],filename[1024]="";        
        char *exename;
        pid_t pid;
        DIR* dp;        
        struct dirent *dirp;
        dp=opendir("/proc");
        chdir("/proc");
        FILE *fp;
        while((dirp=readdir(dp))!=NULL)//搜索所有的进程ID
        {
                memset(temp,0,100);
                memset(filename,0,1024);
                memset(buf,0,256);
                if(!(isdigit( dirp->d_name[0])))
                        continue;
                strcpy(temp,"/proc/");
                strcat(temp, dirp->d_name);
                strcat(temp,"/stat");
                fp=fopen(temp,"r");//从/Proc//stat文件中获取文件名
                                   //若获取绝对文件名请在在maps文件中解析
                fgets(buf,256,fp);
                fclose(fp);
                if(strlen(buf)==0)
                        continue;
                exename=strtok(buf,"()");
       exename=strtok(NULL,"()");
       /*
dirp->d_name是次进程的ID
已经获取了该进程的文件名(exename)
加入你自己的处理过程(和给定的进程名比较等)       */
        }
        closedir(dp);
}

/*确实是初学,头疼的很,大家不要笑话我。:)*/

    
 
 

您可能感兴趣的文章:

  • 请教:如何在Linux下获得EDID信息
  • 请教:如何获得系统调用序列?
  • 请教:如何能获得某个文件系统的块大小
  • 小弟请教各位高手,在JAVA中通过什么函数能获得Button的标签内容?
  • sql server数据库有没有专门的jdbc驱动程序,若有,请教怎样获得?
  • 请教如何在MINIGUI下获得当前光标的位置?
  • 请教如何获得shell命令的返回值?谢谢。
  • 请教 一个shell问题 如何通过shell获得一个日志文件中的增量部分
  • 请教高人,在unix中怎样使一般进程暂时获得管理员的权限,急!!谢谢
  • 请教,在程序运行中,获得屏幕输出信息
  • 请教:IBM AIX 4.3下面如何获得系统当前的物理内存占用率啊?
  • 请教,通过改变时区来获得N天前日期,为啥只能是7天啊
  • 请教:在程序里用system启动一个命令,如何获得这个进程的正常输出和错误输出到一个字符串里?
  • 请教:在Jsp怎样获得当前日期的:Year ,Month ,Day
  • [请教]怎样获得共享库(动态连接库)中函数的原型以便编写专用库来覆盖它?
  • 在线等待!!!请教各位同仁,获得当前程序运行时间的对象和方法是什么?
  • 请教各位网友有什么方法可以根据事件类型的id来获得这个事件类型名?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • HTML标签参考手册 iis7站长之家
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


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

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

    浙ICP备11055608号-3