- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在运行程序
#include<stdio.h>
#include <unistd.h>
main()
{
pid_t pid, ppid;
printf("Hello World1\n");
pid=fork();
if(pid==0)
{
printf("I am the child\n");
printf("The PID of child is %d\n",getpid());
printf("The PID of parent of child is %d\n",getppid());
}
else
{
printf("I am the parent\n");
printf("The PID of parent is %d\n",getpid());
printf("The PID of parent of parent is %d\n",getppid());
}
}
我得到的输出是。
$ ./a.out
Hello World1
I am the parent
The PID of parent is 3071
The PID of parent of parent is 2456
I am the child
The PID of child is 3072
The PID of parent of child is 1
我听不懂这句话
The PID of parent of child is 1
应该是3071吧?
最佳答案
因为在子进程请求其父进程的 pid 时父进程已完成。
当一个进程结束时,它的所有子进程都被重新分配为 init 进程的子进程,该进程的 pid 为 1。
尝试使用 wait()
在 parent 的代码中等待 child 执行。然后它应该会按预期工作。
关于c - 为什么 child 的 getppid() 返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16078188/
我能够在 Windows 中运行 Odoo v8 代码。但是当我调试代码时,出现错误: ppid = os.getppid() AttributeError: 'module' object has
getppid() 返回父进程的进程 ID。 因为任何给定进程在任何时候都只能有一个父进程。从 getppid 返回是有道理的。 是否有对 getChildPid 的等效系统调用? 我知道一个进程可以
我正在做多进程的实践。我只是想查看父进程id,它看起来和我想象的不一样。这是我的代码: #include #include #include #include #include #inclu
当调用 fork() 时,父进程的 PID 保存在子进程的 PCB 中。在什么情况下, child 知道其 parent 的 PID 会有用? 最佳答案 例如,进程可能希望知道它是否在系统启动时由 i
我四处搜索,但无法找到我要找的东西。我知道 getpid() 返回调用进程的进程 ID,getppid() 返回调用进程父进程的进程 ID。但是有没有函数可以获取程序的进程ID呢?或者这就是上述两者之
这是我的代码,为了执行这个程序,我运行 ./2c 10 5 —参数 1 为 10,参数 2 为 5。该程序将运行 10 个子进程,第 5 个子进程将生成另一个子进程,但在这种情况下,我的 ppid 始
当我运行下面的代码时 #include #include //int i=0; int main(){ int id ; id = fork() ; printf("id value : %d\n
/* In alarm.c, the first function, ding, simulates an alarm clock. */ #include #include #include
这个问题在这里已经有了答案: Why do processes I fork get systemd as their parent? (3 个答案) 关闭 6 年前。 我一直在努力学习 fork
我的目标是找出运行我的 JavaScript 代码的线程和进程的线程 ID 和进程 ID。我找不到可以提供此功能的函数,因此我使用下面编写的基本 C 代码,并使用 emscripten 将其转译为 J
我正在运行程序 #include #include main() { pid_t pid, ppid; printf("Hello World1\n"); pid=fork(
我是一名优秀的程序员,十分优秀!