[Linux 开发与高级讨论] 有关进程的第二个问题
发信人: darlingpeng (坏同志式的好同志), 信区: LinuxDev
标 题: 有关进程的第二个问题
发信站: 水木社区 (Fri May 12 09:47:27 2017), 站内
大家好,
我有下面的代码,
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
[code=c]
int main()
{
pid_t pid;
printf("parent: pid=%d, ppid=%d, gpid=%d\n", getpid(), getppid(), getpgrp());
pid = fork();
if (pid == 0)
{
printf("child: pid=%d, ppid=%d, gpid=%d\n", getpid(), getppid(), getpgrp());
} else
{
printf("father: pid=%d, ppid=%d, gpid=%d\n", getpid(), getppid(), getpgrp());
sleep(1);////这个地方
}
return 0;
}
[/code]
有两个问题:
1. 我如果没有加sleep(1),那么子进程中显示的父进程号就不是主进程的进程号,只有加了休眠后,值才是对的?
2. 我如果不加sleep()函数,软件需要按回车键后才回到shell环境,加了sleep()后,会主动回到shell环境?
为什么?????
谢谢大家
--
※ 来源:·水木社区 http://ift.tt/15tmf2p: 183.202.8.*]
from 水木社区 电脑技术区十大热门话题 http://ift.tt/2rpFrlT
via IFTTT
标 题: 有关进程的第二个问题
发信站: 水木社区 (Fri May 12 09:47:27 2017), 站内
大家好,
我有下面的代码,
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
[code=c]
int main()
{
pid_t pid;
printf("parent: pid=%d, ppid=%d, gpid=%d\n", getpid(), getppid(), getpgrp());
pid = fork();
if (pid == 0)
{
printf("child: pid=%d, ppid=%d, gpid=%d\n", getpid(), getppid(), getpgrp());
} else
{
printf("father: pid=%d, ppid=%d, gpid=%d\n", getpid(), getppid(), getpgrp());
sleep(1);////这个地方
}
return 0;
}
[/code]
有两个问题:
1. 我如果没有加sleep(1),那么子进程中显示的父进程号就不是主进程的进程号,只有加了休眠后,值才是对的?
2. 我如果不加sleep()函数,软件需要按回车键后才回到shell环境,加了sleep()后,会主动回到shell环境?
为什么?????
谢谢大家
--
※ 来源:·水木社区 http://ift.tt/15tmf2p: 183.202.8.*]
from 水木社区 电脑技术区十大热门话题 http://ift.tt/2rpFrlT
via IFTTT
评论
发表评论