fork() 和输出

2024-01-12

我有一个简单的程序:

int main()
{
    std::cout << " Hello World";
    fork();
}

程序执行后我的输出是:Hello World Hello World。为什么会发生这种情况而不是单一的Hello world?我猜测子进程在幕后重新运行,并且输出缓冲区在进程之间共享或类似的事情,但情况是这样还是发生了其他事情?


这并不完全是你最初的想法。输出缓冲区不共享 - 当您执行 fork 时,两个进程都获取同一缓冲区的副本。因此,在分叉后,两个进程最终都会刷新缓冲区并将内容分别打印到屏幕上。

This 只发生因为 cout 是缓冲 IO。如果您使用未缓冲的 cerr,则在分叉前,您应该只能看到该消息一次。

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

fork() 和输出 的相关文章

  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • “./somescript.sh”和“. ./somescript.sh”有什么区别

    今天我按照一些说明在 Linux 中安装软件 有一个需要首先运行的脚本 它设置一些环境变量 指令告诉我执行 setup sh 但是我执行时犯了一个错误 setup sh 所以环境没有设置 最后我注意到了这一点并继续进行 我想知道这两种调用脚
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似

随机推荐

  • 如何将包含连字符的键的对象解构为变量? [复制]

    这个问题在这里已经有答案了 如何从键包含连字符的对象解构属性 Eg accept ranges bytes cache control public max age 0 content length 1174 content type ap
  • 为 Chrome 扩展注入 CSS

    我对 Chrome 扩展开发还很陌生 我知道可以注入CSS 但是是否可以为特定的 URL 注入它 例如 每当我访问 google com 时 CSS 就会被注入 谢谢您的帮助 那么 您有 2 个选择 编程注入和内容脚本 这些名字可能听起来非
  • 将 csv 文件导入 java swing 表

    我有纽约证券交易所所有股票报价的 csv 文件 第一列是符号第二列是公司名称 我有一个使用 java swing 库在 netbeans 中制作的搜索框和表格 现在 当我在框中输入名称时 它会返回正确的行数 例如 如果我搜索 GOOG 它只
  • 根据调整窗口大小的动态高度 div

    HTML div class header Header div div class body table class body table tr td Cell td td Cell td td Cell td tr tr td Cell
  • 如何在for循环中声明变量? (IDL)

    例如 我的文件以00 dat 01 dat 02 dat 每个文件包含多个列 我使用READCOL将它们读入变量 for i 0 n 1 do begin readcol string i F I02 dat F D D a0 b0 rea
  • postgresql中如何计算空值?

    select distinct column from table output column 1 0 0 2 null 3 1 0 但是当我尝试计算空值时 select count column from train where colu
  • 直接访问子类中自动合成的实例变量?

    为了提高效率 我想访问与子类中的属性关联的成员变量 如果我有一个声明如下的财产 interface Mumbo NSObject property nonatomic GLKVector3 position end 在 Mumbo 的实现中
  • 使用 Win32 API 连接字符串

    使用 Win32 连接字符串的最佳方法是什么 如果理解正确 正常的 C 方法是使用strcat 但由于 Win32 现在处理 Unicode 字符串 又名LPWSTR 我想不出办法strcat来处理这个 有这个功能吗 还是我应该自己写 ls
  • 从分页 URL 中删除“页面”

    我在更改 Wordpress 中的分页 URL 时遇到问题 我知道这个问题的通用解决方案是更改 WordPress 核心文件 但我只需要针对一个类别使用此解决方案 也许只有一个类别可以通过 htaccess 来完成 现在有这样的网址 htt
  • 未找到架构 x86_64 的符号 - Cmake - Mac sierra

    最近我开始了一个 C 的新项目 问题是 当我尝试编译它时 出现链接错误 我今天花了一整天的时间尝试调试它 但我并没有真正在任何地方找到好的解决方案 如果有人能帮忙那就太好了 我使用的是 Mac Sierra parsing methylat
  • 如何通过 EF Model First 数据库架构升级避免数据丢失?

    这是一个很长的问题 但如果我能就此得到一些好的建议 我将非常非常感激 简而言之 我正在寻找一种对 MS SQL 数据库模式进行版本升级的好方法 该方法还要求将数据从已删除的表移至新表 我认为 Stack Overflow 是解决这个问题最合
  • 如何在 Emacs 中输入希腊字符

    This http xahlee info emacs emacs emacs n unicode htmlpage 表明希腊字母可以通过使用插入到 Emacs 中M i 然而 Debian Squeeze 变体中的 Emacs 23 2
  • 如何将BottomAppBar + FAB与BottomNavigationView结合起来

    我想使用FloatingActionButton 以及它锚定在 BottomNavigationView 顶部的 BottomAppBar 上时的行为 我想出了一个相当 hacky 的技巧来放置BottomNavigationView在 B
  • 如何证明这个大o符号的说法?

    如何证明这一点 4n O 8n 8n O 4n 那么有哪些C and n0两种情况的值 EDIT 我试图澄清我更多 1 For a proof see formal definition of Big O http en wikipedia
  • 分布式tensorflow在运行server.__init__后独占GPU

    我有两台计算机 每台计算机都有两个 GPU 我试图从分布式张量流开始 但对它是如何工作的感到非常困惑 在计算机 A 上我想要一个ps任务 我的印象是这应该在CPU上进行 和两个worker任务 每个 GPU 一个 我想在计算机 B 上有两个
  • angularjs在控制器之间共享数据配置

    我想知道共享指令的好方法是什么 控制器之间 我有两个指令可以在不同的控制器中使用 我首先想到的是不同的配置 使用类似 html div class container div div div js controller MainCtrl f
  • 如何加载检查点文件并使用略有不同的图形结构继续训练

    当我训练图表时 我发现我忘记在图表中添加 dropout 但我已经训练了很长时间并得到了一些检查点 那么我是否可以加载检查点并添加 dropout 然后继续训练 我的代码现在是这样的 create a graph vgg fcn fcn8
  • Selenium 和 Angularjs 等待执行一些操作

    我正在使用 selenium 来测试 AngularJS 应用程序 我面临的问题是 在页面完全加载之前 我无法在页面上执行任何操作 我可以放置 Thread sleep 但据我所知 这不是一个好的解决方案 有很多方法可以等待页面加载 我用谷
  • Spring @ConditionalOnProperty 注释未按预期工作

    我在属性文件中定义了一个属性 property true 然后我有SomeClass java类 其中should创建属性配置 beanonly如果财产property设置为 true 这是我的SomeClass class public
  • fork() 和输出

    我有一个简单的程序 int main std cout lt lt Hello World fork 程序执行后我的输出是 Hello World Hello World 为什么会发生这种情况而不是单一的Hello world 我猜测子进程