发信人: 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