gpt4 book ai didi

c++ - fork() 到底在做什么?在我的 C++ 程序中

转载 作者:太空宇宙 更新时间:2023-11-04 15:48:25 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
working of fork in c language

我有一个非常简单的程序,我试图理解 fork()现在,在我的程序中,fork() 每次遇到 fork() 时都会复制整个程序或上面的行(作为 parent )?

我得到了奇怪的结果,这让我更难理解。

#include <iostream>
#include <unistd.h>
using namespace std;

int main()
{
cout << "Ha! " << endl;
fork();
cout << "Ho! " << endl;
fork();
cout << "He! " << endl;

}

输出:

apple.seed@wint:~$ ./program1
Ha!
Ho!
He!
Ho!
He!
apple.seed@wint:~$ He!
He!

在 fork() 点,操作系统将创建一个与父进程完全相同的新进程(不管它是什么?)。这意味着之前提到的所有状态都被复制,包括打开的文件、寄存器状态和所有内存分配,其中包括程序代码。(所以当程序到达 fork() 时整个程序被复制?)

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com