2 fengyejushi fengyejushi 于 2014.10.16 19:49 提问

关于与子进程与父进程

下面是我实验的一段代码,结果产生了,无限的输出。我的推测是子进程从f返回时,f的栈帧出栈,从而当子进程结束时。父进程由于f出栈从而又从新执行了main,从而产生无限输出。求教???????????

#include
#include

void f()
{
if(vfork()<0)
{
perror("fork");
}

}

int
main(int argc,char * argv[])
{
pid_t pid;
pid=getpid();
printf("pid=%d\n",pid);
f();
if(getpid()!=pid)
{
printf("pid=%d\n",getpid());
}
else
{
printf("pid=%d\n",getpid());
}
return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于父进程和子进程的关系(UAC 绕过思路)
表面上看,在windows中。如果是a进程创建了b进程,那么a进程就是b进程的父进程,反之,如果是b创建了a,那么b进程就是a的父进程,这是在windows出现以来一直是程序猿们都证实的,但是在在win Vista后面有了一个新安全消息机制,UAC(user account control),这里科普下UAC的功能,其实UAC就是大家常见的安装软件或者启动程序的时候的出现的全屏变暗的一个提示框,这
关于子进程继承父进程属性的小问题总结
今天看书,看到用fork创建子进程的一段样例代码: [cpp] view plaincopy #include    #include    #include       int main(void)   {       pid_t pid;       char* msg;       int k;          pri
Console 子进程 父进程
Console 子进程 父进程Console 子进程 父进程Console 子进程 父进程Console 子进程 父进程
进程学习——父进程子进程ID
今天在测试共享内存时编写了一个进程测试的代码,在调用fork函数创建子进程时,在父进程中返回子进程pid,在子进程中返回0;具体代码如下: #include <unistd.h> #include <stdio.h>int main() { pid_t pid; pid = fork(); //父进程 if(pid != 0) { printf(
父子进程的各种区别与联系
(一)程序中fork与I/O函数之间的关系:         write是不带缓冲 的,因为在fork之前调⽤用write,所以其数据只写到标准输出⼀一次。标准I/O是缓冲的,如果标准输出到终端设备,则它是⾏行缓冲,否则它是全缓冲。当以互⽅方式运⾏行该程序时,只得到printf输出的⾏行⼀一次,因为标准输出到终端缓冲区由换⾏行符冲洗。但将标准输出重定向到⼀一个⽂文时,由于缓冲区是全缓冲,遇到换⾏
父进程等待子进程结束 waitpid wait
我们一直在强调一个概念就是进程是一个程序执行的实例,是内核在虚拟概念下创建的实体,它实例化的体现在用户态就是程序代码和代码使用的变量(存储空间),在内核态就是内核为我们每个进程所保存的数据结构(状态信息)等。 当一个进程由于某种原因停止时,内核并不是直接将为它保存的状态信息从内核移除,相反,进程会一直被保持在一种已经终止的状态,直到被它的父进程回收,当父进程回收已经终止的子进程时,内核会将子进程的
问题:子进程父进程哪个先执行:【转】关于 fork 和父子进程的理解 + 【转】
关于 fork 和父子进程的理解    代码: #include   #include   main ()  {          pid_t pid;          pid=fork();          if (pid                 printf("error in fork!");          else if
为什么fork创建子进程后,父进程中运行过的代码在子进程中不再运行了
子进程是父进程的一个完全拷贝,如何理解?为什么fork创建子进程后,父进程中运行过的代码在子进程中不再运行了?
linux子进程知道父进程退出的解决方案
在实际开发中难免会处理进程间的关系,最常见的是父子进程的相互监督。父进程等待子进程,或者自进程知道父进程运行是否结束,以方便释放资源。本文章提供了如何实现父进程监听子进程结束的方案,以及子进程如何知道父进程退出的方案。
一起talk C栗子吧(第七十九回:C语言实例--父进程与子进程)
各位看官们,大家好,上一回中咱们说的是创建进程的例子,这一回咱们说的例子是:父进程与子进程。闲话休提,言归正转。让我们一起talk C栗子吧!