最近在Linux上写一个小程序,由于接触Linux时间不长,碰到了很多问题都需要查资料,发现,相对于Windows来说,Linux的资料还是少了些(可能也是由于自己的Google方法不对吧,呵呵),比较费时间。
今天本来想实现一个功能——获取进程名(包括路径),但是,发现,网上基本没有稍微直接一点的提示。
由于本人愚笨,Linux接触不长,基本的组织结构弄的不是太清楚,通过多番资料查找,融汇总结了一下,要完成我的功能,一共有三种方式(其实,归根结底还是一种方式,那就是对/proc/pid路径的目录结构要熟悉)
废话不多说,直入正题。
基本思路:首先,可以根据进程的pid,在/proc/pid路径下查找对应的信息:
例如,某个进程的pid=17731,那么,就可以去/proc/17731路径下获取相应信息
一共有三种方法获取进程完整路径:
一、通过getcwd函数 + /proc/pid/cmdline文件
getcwd函数获取当前进程的路径,不包括进程名。而要获取进程名,需要读取cmdline文件的内容
其中,cmdline文件中存入的是启动此进程时传入的cmd的字符串,如果是以./filename的形