LINUX下C++编程如何获得某进程的ID

LINUX下C++编程如何获得某进程的ID,第1张

#include <stdioh>

#include <stdlibh>

#include <unistdh>

using namespace std;

pid_t getProcessPidByName(const char proc_name)

{

     FILE fp;

     char buf[100];

     char cmd[200] = {'\0'};

     pid_t pid = -1;

     sprintf(cmd, "pidof %s", proc_name);

     if((fp = popen(cmd, "r")) != NULL)

     {

         if(fgets(buf, 255, fp) != NULL)

         {

             pid = atoi(buf);

         }

     }

     printf("pid = %d \n", pid);

     pclose(fp);

     return pid;

}

int main(int argc, char argv)

{

    if(argc != 2)

    {

        printf("Invalid input! \n");

        return -1;

    }

    char process_name = argv[1];

    pid_t process_pid = getProcessIDByName((const char)process_name);

    return 0;

}

序号 列名 含义

A PID 进程id

B PPID 父进程id

C RUSER Real user name

D UID 进程所有者的用户id

E USER 进程所有者的用户名

F GROUP 进程所有者的组名

G TTY 启动进程的终端名。不是从终端启动的进程则显示为

H PR 优先级

I NI nice值。负值表示高优先级,正值表示低优先级

J P 最后使用的CPU,仅在多CPU环境下有意义

K %CPU 上次更新到现在的CPU时间占用百分比

L TIME 进程使用的CPU时间总计,单位

M TIME+ 进程使用的CPU时间总计,单位1/100秒

N %MEM 进程使用的物理内存百分比

O VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

P SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。

Q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

R CODE 可执行代码占用的物理内存大小,单位kb

S DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

T SHR 共享内存大小,单位kb

U nFLT 页面错误次数

V nDRT 最后一次写入到现在,被修改过的页面数。

W S 进程状态。

D=不可中断的睡眠状态

R=运行

S=睡眠

T=跟踪/停止

Z=僵尸进程

X COMMAND 命令名/命令行

Y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名

Z Flags 任务标志,参考 schedh

1)说明:

Linux的所有进程都保存在/proc/目录下,保存形式为:/proc/进程号。进入到进程号目录后,里面有一个cwd链接文件即指向的进程的的目录。

2) *** 作:

A:确定进程号。如:4874;

B:查找进程执行的文件。ps aux | grep 4874;

C:确定进程所在的目录。ll /proc/4874;

getppid() 获取父进程 id,

getpid() 获取当前进程 id

比如

int main()

{

int pid = fork();

if (pid == 0)

{

// child

printf ("ParentID is %d\n", getppid());

}

esle

{

printf("I'm parent, id %d\n", getpid());

wait(NULL);

}

return 0;

}

再就是程序编译没错,但是运行时出现“实时信号 2”

没有源码,谁也帮不上你。 你可以用 gdb去调试。

以上就是关于LINUX下C++编程如何获得某进程的ID全部的内容,包括:LINUX下C++编程如何获得某进程的ID、在linux里,怎样得到另一个进程的进程号、Linux怎么根据进程号,找对应的进程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9266660.html

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

发表评论

登录后才能评论

评论列表(0条)

保存