gpt4 book ai didi

c - 如何在 C 中给定父 PID 时获取所有子进程的 PID

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:12 26 4
gpt4 key购买 nike

我知道这可以通过以下方式在 bash 中完成:pstree parent-pid。但是我怎样才能用 C 来做到这一点呢?是否有任何方法不必迭代整个/proc 文件系统(例如系统调用/库函数)?

最佳答案

可以使用popen读取命令ps -ef的输出,然后查找指定PID的所有子进程>

int getAllChildProcess(pid_t ppid)
{
char *buff = NULL;
size_t len = 255;
char command[256] = {0};

sprintf(command,"ps -ef|awk '$3==%u {print $2}'",ppid);
FILE *fp = (FILE*)popen(command,"r");
while(getline(&buff,&len,fp) >= 0)
{
printf("%s\n",buff);
}
free(buff);
fclose(fp);
return 0;
}

关于c - 如何在 C 中给定父 PID 时获取所有子进程的 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20393397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com