- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 C 的新手。我尝试了以下代码,希望 child 的 ppid 与 parent 的 pid 匹配,但事实并非如此。
int main() {
int pid;
printf("I'm process with pid=%d\n", getpid());
switch (pid = fork()) {
case -1:
perror("fork");
exit(1);
case 0:
printf("I'm the child process: pid=%d, ppid=%d\n", getpid(), getppid());
break;
default:
printf("I'm the parent process: pid=%d, ppid=%d\n", getpid(), getppid());
break;
}
exit(0);
}
> gcc -o fork fork.c
> ./fork
I'm process with pid=16907
I'm the parent process: pid=16907, ppid=6604
I'm the child process: pid=16908, ppid=1 // <-- expected ppid=16907, why 1?
>
我做错了什么?
最佳答案
很可能父进程已经退出,不再存在。您可以尝试在父级中进行一些延迟。
关于c fork 的子 ppid 与父的 pid 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31237993/
在这个程序中,为什么子进程打印错误的ppid()? #include #include #include void childprocess() { printf("Child: Hi I am
在 Linux 和其他 POSIX (?) 操作系统上 - 如何获取给定(按 pid)进程的名称和父 pid?目前我正在阅读/proc 但 OSX 没有。在 OSX 上我使用的是 libproc 但它
我正在处理 MS Windows C# Winform 项目,但无法获取 PPID(父进程 ID)。我找到了许多解决方案,但似乎没有一个适用于上述操作系统和语言。 如何获取 PPID? 最佳答案 如果
在 Linux 上,我尝试使用 python 创建一个名称上带有 PID 的文件,我知道在 bash 上可以这样: outfile=/tmp/saul.$$.tmp 然后我可以将输出重定向到该变量:
这是我的代码: #include #include #include int main() { pid_t pid; int status; if ((pid = for
这可能是一个奇怪的问题,因为我搜索并发现许多人询问如何在给定 PID 的情况下找到 PPID。但是,我有兴趣找出给定 PPID 的所有 PID。 动机是使用 pidstat 运行进程检查,从我对 pi
我在一个通过卫星调制解调器执行通信的 android 项目中。 您需要为调制解调器运行 pppd 命令才能通过 android 建立连接。 我通过 bash 执行了这个命令。 process =
在 Linux 中创建守护进程是 quite complex问题,但它在 daemon(7) manual 中有很好的记录.谢天谢地有 python-daemon实现 PEP3143 的 Python
我的 iOS 应用已被拒绝,我从 Apple 收到以下消息: ....... 拒绝原因:MFI 问题 我们开始了您的审核,但无法继续,因为我们无法找到您的 MFi 证书 PPID #。 请转至 iTu
系统重新启动 Linux 后,我的带有 ppid 1 的网络应用程序恶魔不会断开套接字连接。然而,如果手动使用kill -9杀死该恶魔,它会断开连接。 如果我使用 nohup 运行应用程序,我也会注意
我需要找到例如 nginx 应用程序的主进程的进程 ID。如果我跑 $ ps 辅助 | grep nginx | awk {'打印 $2'} 我得到以下输出。 599 3261 3264 27671
我是 C 的新手。我尝试了以下代码,希望 child 的 ppid 与 parent 的 pid 匹配,但事实并非如此。 int main() { int pid; printf("I
#include int main(void) { fork(); fork(); printf("ppid %d pid %d\n", getppid(), getpid(
sleep 5000 在一个终端和第二个终端中我正在运行: ps -ef | grep sleep 然后我使用 ppid 在第二个终端中终止此进程。然后它将关闭我运行 sleep 命令的第一个终端。它
我被分配到 Write a C program that prints the following identifiers PID, PPID, SID, PGID, UID, EUID. 作业接着问
上下文:我正在获取当前的 Ruby 进程 ID。 Process.pid #=> 95291 Process.ppid #=> 95201 Process.uid #=> 501 Process.
您好,我有一个关于使用 fork() 创建更多 child 的问题,该问题基于我之前提出的问题 using fork() to make 3 children out of 1 parent in C
ps -u 学生 -eo "%c %p %P %U" 最佳答案 您要查找的命令是 ps -u student -o cmd,pid,ppid,user,uid,gid 关于linux - 如何打印特定
我是一名优秀的程序员,十分优秀!