如何克隆自己的实例,就像Chromium一样
How to clone an instance of oneself , like Chromium does?
当我再次启动已经启动的chromium时,我可以看到以下内容:
在c++中有什么通用的方法来做类似的事情吗?还是像c++中的"new"函数一样,只是简单地克隆另一个对象?我困惑。
%> chromium浏览器在现有浏览器会话中创建新窗口。
它与c++中的"new"完全不同:它在一个高得多的层次上。当新进程启动时,它寻找一个现有的进程,如果找到一个,它就向它发送一个命令来创建一个新窗口,然后退出。该命令的语法和性质是特定于应用程序(或应用程序框架)的,查找现有实例的机制也是如此。
一种方法是使用fork()系统调用创建一个与父进程相同的新进程。新进程将具有不同的进程id(PID)。在Chrome浏览器的情况下,如果你看看任务管理器(Windows)或'ps'命令的输出(Linux),你可以看到,一旦你打开一个新的选项卡,它是一个新的进程与新的PID。
下面的链接将有助于理解fork() http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html相关文章:
- 我们可以将集合的值存储在变量中吗?就像我们可以将数组的值存储在变量中一样
- 如何使用 redis-plus-plus 存储二进制数据,就像我想存储结构一样?@for_stack?
- 如何将到达图形视图右侧(末端)的QGraphicsPixmapItem移动到左侧(开始)侧(就像在贪吃蛇游戏中发生的事情
- 为什么C++中没有常量引用,就像常量指针一样?
- 我必须找到给定数组中所有数字的周期,就像有很多解决方案,但数组的大小是 10^5
- 如何将输入值拆分为4位矢量,就像将n位拆分为每部分矢量的半字节一样
- 为什么向量不支持 size 作为成员变量,就像 Java 类中的长度变量一样,而是函数 size()?
- C++代码生成核心文件,就像 gdb >> gcore 一样
- 从 boost::variant 中逐个索引获取项目,就像使用 std::variant 一样
- 线程 1 从文件读取,就像线程 2 写入同一文件一样
- 如何将值插入到 c++ boost::multiindex 集合的特定索引中,就像在 std::list 中一样
- 如何在Powershell中运行C++程序,就像CMD一样?
- 将参数传递给成员函数,就像使用 std::cout 一样
- 我想知道如何将所有数值与没有任何空格的字符串分开,就像 123we45rt75 一样
- 如何获得CPU当前速度,就像Taskmgr中的价值外交一样?下图
- C - 将数字添加到列表中?(就像python)
- 在C 中,对Pair类STL的用途是什么,就像数据类型或容器一样
- 如何在文件系统之上添加层?就像OneDrive或Google云端硬盘中的缓存一样
- 为什么 gRPC C++ 客户端在没有显式服务器的 SSL 证书的情况下无法工作,就像在示例中一样?
- 如何克隆自己的实例,就像Chromium一样