Boost.Process - 如何让进程运行一个函数?

2023-12-07

所以我尝试做一些事情升压过程尽管它尚未被 Boost 发行版接受。

最简单的程序看起来像

#include <boost/process.hpp> 
#include <string> 
#include <vector> 

namespace bp = ::boost::process; 

void Hello()
{
    //... contents does not matter for me now - I just want to make a new process running this function using Boost.Process.
} 

bp::child start_child() 
{ 
    std::string exec = "bjam"; 

    std::vector<std::string> args; 
    args.push_back("--version"); 

    bp::context ctx; 
    ctx.stdout_behavior = bp::silence_stream(); 

    return bp::launch(exec, args, ctx); 
} 

int main() 
{ 
    bp::child c = start_child(); 

    bp::status s = c.wait(); 

    return s.exited() ? s.exit_status() : EXIT_FAILURE; 
} 

如何提高我正在创建的进程来执行 Hello() 函数?


你不能。另一个进程是另一个可执行文件。除非您生成同一程序的另一个实例,否则子进程甚至不会包含 Hello() 函数。

如果子进程是程序的另一个实例,则需要定义自己的方式来告诉子进程运行 Hello()。这可能是进程参数或 std:cin 上的某些协议(即使用标准输入进行进程间通信)

在 UNIX/Linux 平台上,您可以启动另一个进程,但不能运行不同的可执行文件。请参阅 fork(2) 系统调用。然后你可以在孩子中调用Hello()。但是 boost::process:launch() 在此类平台上映射到 fork+exec 。普通的 fork() 不会被 boost 暴露,例如因为它在其他平台上不存在。

可能有极其依赖于平台的方法来完成您想做的事情,但您不想去那里。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Boost.Process - 如何让进程运行一个函数? 的相关文章

  • 为什么 int8_t 和用户通过 cin 输入显示奇怪的结果[重复]

    这个问题在这里已经有答案了 一小段代码让我发疯 但希望你能阻止我跳出窗外 看这里 include
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 外键与独立关系 - Entity Framework 5 有改进吗?

    我读过了several http www ladislavmrnka com 2011 05 foreign key vs independent associations in ef 4 文章和问题 https stackoverflow
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com

随机推荐

  • 当启用 Visual-line-mode 时,如何使用 hl-line-mode 仅突出显示一 (1) 行

    有没有人有替代方案或修改方案hl line mode这样只有一 1 条水平线才会突出显示visual line mode已启用 目前 整条自动换行的行都会突出显示 即使它可能跨越几条水平线 我正在使用 Emacs Trunk 的最新版本 您
  • JavaScript Promise 是异步的吗?

    只是一个简单的澄清问题 JavaScript 是Promise异步 我读了很多关于Promise和异步编程 即ajax请求 如果Promise不是异步的 我们如何做到这一点 例如 我有一个函数来包装一个函数f带参数数组args里面一个Pro
  • 具有 DateTimeField 和 timedelta 默认值的 Django 迁移

    我在设置默认值时遇到问题datetime在我的 Django 模型之一上 from django db import models from django utils import timezone class MyModel models
  • System.Drawing 的撤消按钮?

    我正在制作一个图像编辑器 有点为了自己的享受 并且想知道如何制作一个撤消按钮来撤消我上次所做的绘画 我想知道我会如何处理这个问题 教程或示例代码会很好 或者至少能指引我正确的方向 Thanks 呵呵 撤消实际上并不像听起来那么难 这里的神奇
  • 比较双精度数返回 false

    我的数据库中有三个数字 想要在 if 语句中比较它们 我有一个简单的 convert 函数 仅返回双精度数 Public Function RetDbl ByVal obj As Variant As Double On Error Res
  • 设置在 Foreach 循环中默认选中的 RadioButtonFor()

    我有一个奇怪的行为使用 Html RadioButtonFor扩展方法 我正在使用 foreach 循环创建 RadioButton 和 By 三元运算符的列表 我试图将尊重条件的人设置为检查 但它总是最后一个被检查的人 我搜索了类似的问题
  • 如何创建类似于 Twitter 应用程序位置切换按钮的切换按钮?

    我应该使用什么自定义按钮 可以左右滑动 例如 Android 的 Twitter 应用程序上的打开 关闭位置按钮 如下图所示 还有创建此类按钮的任何链接或指南 Thanks 使用一个简单的切换按钮结合一个可绘制状态列表设置为其背景 的一个样
  • 如何在R包RecordLinkage中使用compare.linkage——意外的输出

    我正在使用R包RecordLinkage中的compare linkage函数 得到的结果我知道是错误的 所以我知道我误解了一些东西 我正在使用适用于 x64 Windows 的 R 3 2 3 我对 Stata 非常熟悉 但对 R 不太熟
  • 在 Powershell 中计算日志结果

    我有一项任务 必须从 Windows 安全日志文件中提取 审核失败 和 审核成功 等信息 并计算每个 ex 的结果 总尝试次数 成功次数 失败次数和最常见的事件 ID 我将 csv 保存到桌面以获取信息 但我不确定如何获取每个文件的运行总计
  • 有关 Django 中字段类型的问题

    我是 Django 新手 我想在 Django 中制作一个用户注册表单 创建模型时 我为密码字段提供了 fieldtype gt PasswordField 但是当我将此模型运行到终端时出现错误 password models Passwo
  • Angular 2 - 如何将数据传递给子组件而不渲染子组件两次?

    我想将一个对象从 app component 传递到子组件 home component 我是否使用了错误的路由方式 这就是为什么我想要将对象传递给的子组件被渲染两次 我怎样才能避免它 我想这也可能是第二次渲染组件时该对象未定义的原因 我已
  • Magento 1.9.2.1 自定义模块 404

    我最近安装了 Magento 的干净版本 我有一个自定义模块 它在旧模块上运行得很好 但在新模块上却不起作用 都是 1 9 2 1 它显示在 系统 gt 配置 gt 高级 gt 高级 下 每当我尝试调用 mydomain index php
  • 如何解决“参数必须是实现 Countable 的数组或对象?” [复制]

    这个问题在这里已经有答案了 警告 count 参数必须是数组或对象 在 C xampp htdocs try process php 第 30 行实现 Countable 这就是我的代码所说的 看起来很好 但是当我按编辑时 会显示此错误 我
  • 如果声明但未初始化对象的变量是否会使用内存空间?

    我有一个类 我想使用大约十到十万个 因此 我不想不必要地浪费内存位置 仅在其中少数 如果是 我是否还有其他选择 除了将它们作为自己的类之外 来减少内存使用 这是我的代码示例 name and propability我只需要几次 public
  • 为什么我收到 java.lang.AbstractMethodError 错误?

    ABstractMethodError 的可能原因有哪些 线程 pool 1 thread 1 中的异常java lang AbstractMethodError org apache thrift ProcessFunction isOn
  • 返回 Excel VBA 宏 OneDrive 本地路径 - 可能的线索

    我有一个许多人需要访问的电子表格 在共享点上 出于某些原因 我们需要在本地执行此操作 同步 然而 由于每个用户的知识水平 不断出现问题和错误 电子表格需要具有结构和一致性 因此为了实现这一点 我创建了一个带有一组参数的用户表单 以帮助人们输
  • 如何测量应用程序或进程的实际内存使用情况?

    如何测量 Linux 中应用程序或进程的内存使用情况 摘自博客文章了解 Linux 上的内存使用情况 ps不是用于此目的的准确工具 Why ps是错的 取决于你如何看待它 ps不报告进程的实际内存使用情况 它真正做的是显示每个进程将占用多少
  • TFS 2015:发布工件 - “任务已取消”

    不久之后 我在运行构建任务 发布工件 时收到 任务已取消 tfs 服务器现在已经运行了几周 我在执行这些任务时从未遇到过问题 我通过删除构建输出文件夹解决了这个问题 但不幸的是这个 解决方法 不再起作用 我尝试更改工件名称 希望这可以改变一
  • 如何使用正则表达式从字符串中删除最后一个逗号和空格(如果有)?

    我在 C 应用程序中有一个字符串 想知道检查最后两个字符是否是的正确方法是什么 逗号和空格 并使用正则表达式删除它们 如果是 没有正则表达式的工作解决方案 string str dfsf if str EndsWith str str Re
  • Boost.Process - 如何让进程运行一个函数?

    所以我尝试做一些事情升压过程尽管它尚未被 Boost 发行版接受 最简单的程序看起来像 include