linux获取进程id和进程名称

linux获取进程id和进程名称,第1张

linux获取进程id和进程名称作为一个共享库,应该需要统计使用本库的各种应用程序的使用频率,使用方法等信息。才能针对主要应用做出更好的改进。

www.dnjsb.com

那么就需要记录调用者的进程id或者进程名称,并且保存下来。保存的动作可以采用共享内存,也可以采用文件,这个在下篇博文描述,本文描述如何获取进程id和进程名称。范例:#include

<stdio.h>#include

<unistd.h>#define

CFGMNG_TASK_NAME_LEN

256int

main(){

int

ret

char

ac_tmp[CFGMNG_TASK_NAME_LEN]

ret

=

cfgmng_get_taskname(ac_tmp,

CFGMNG_TASK_NAME_LEN)

if

(0

!=

ret)

{

printf(Call

cfgmng_get_taskname

fail./n)

return

-1

}

printf(The

running

task

name

is

%s./n,

ac_tmp)

return

0}int

cfgmng_get_taskname(char

*ac,

int

len){

int

count

=

0

int

nIndex

=

0

char

chPath[CFGMNG_TASK_NAME_LEN]

=

{0}

char

cParam[100]

=

{0}

char

*cTem

=

chPath

int

tmp_len

pid_t

pId

=

getpid()

sprintf(cParam,/proc/%d/exe,pId)/*

printf(cParam

=

%s./n,

cParam)*/

count

=

readlink(cParam,

chPath,

CFGMNG_TASK_NAME_LEN)/*

printf(count

=

%d./n,

count)*/

if

(count

<

0

||

count

>=

CFGMNG_TASK_NAME_LEN)

{

printf(Current

System

Not

Surport

Proc./n)

return

-1

}

else

{

nIndex

=

count

-

1

for(

nIndex

>=

0

nIndex--)

{

if(

chPath[nIndex]

==

'/'

)//筛选出进程名

{

nIndex++

cTem

+=

nIndex

break

}

}

}

tmp_len

=

strlen(cTem)

if

(0

==

tmp_len)

{

printf(Get

task

fail./n)

return

-1

}

if

(len

<=

tmp_len

+1)

{

printf(len(%d)

is

less

than

taskname(%s)'s

len./n,

len,

cTem)

return

-1

}

strcpy(ac,

cTem)

return

0}从上面的实验范例可以看出,主要使用的函数是getpid获取本进程的id,再到/proc/pid/exe

中去找到对应的进程名称。在/proc目录中有很多跟进程相关的东西,都可以用这种方法触类旁通地实现。

1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。

2、其次,在命令行中输入:ps -ef。

3、最后,键盘按“回车键”运行shell指令,此时会看到所有linux进程的CMD名称。

1、linux查看进程ID。 2、Linux查看进程。 3、linux什么命令查看进程。 4、linux系统进程查看。1."linux查看进程id,为您提供linux查看进程id图文信息,第一登录linux服务器。 2.输入pgrep+进程名称可获取到pid列表。 3.使用ps-ef|grep+进程名也可查看id。 4.使用top命令查看进程pid。 5.通过ls/proc命令查看进程pid。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8706222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存