gpt4 book ai didi

c - 如何在C代码中获取后台进程的PID

转载 作者:行者123 更新时间:2023-11-30 18:03:32 25 4
gpt4 key购买 nike

我正在我的 C 程序中使用系统调用执行 Linux 命令。代码片段-

cmd = "sudo conntrack -E -p udp -e NEW | logger -t log-conntrack -p daemon.notice &";

system(cmd);

这个命令启动了 3 个进程,现在我想要“conntrack”进程的进程 ID(在下面的示例中,PID - 31951)。

root     31949  0.0  0.4   2356  1060 pts/2    S    17:39   0:00 sudo conntrack -E -p udp -e NEW -o idroot     31950  0.0  0.1   1716   504 pts/2    S    17:39   0:00 logger -t log-conntrack -p daemon.noticeroot     31951  0.0  0.2   1852   544 pts/2    S    17:39   0:00 conntrack -E -p udp -e NEW -o id

请帮忙。谢谢

最佳答案

打印进程ID、父进程ID和组ID的程序

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>

int main()
{
pid_t pid, ppid;
gid_t gid;

/* get the process id */
if ((pid = getpid()) < 0) {
perror("
unable to get pid");
} else {
printf("
The process id is %d", pid);
}

/* get the parent process id */
if ((ppid = getppid()) < 0) {
perror("
unable to get the ppid");
} else {
printf("
The parent process id is %d", ppid);
}

/* get the group process id */
if ((gid = getgid()) < 0) {
perror("
unable to get the group id
");
} else {
printf("
The group id is %d
", gid);
}

return(0);
}

关于c - 如何在C代码中获取后台进程的PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8306924/

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