7
|
Lasse V. Karlsen · 技术社区 · 14 年前 |
![]() |
1
7
您的示例代码可能会导致死锁情况,其中写入了
本质上,我建议使用两个流上的异步读取在流被写入时填充缓冲区,然后调用
|
![]() |
2
3
出现此问题的原因是子进程将其标准输出和标准错误写入一对管道中,操作系统为这对管道提供有限的缓冲区。如果父母不积极地阅读这两本书,他们很可能会填饱肚子。当管道填满时,对它的任何后续写入都将被阻止。
最安全的方法是同时读取标准输入和标准错误。有几种方法可以做到这一点:
|
![]() |
CalculusLover · 在本例中,fork()是如何工作的? 3 年前 |
![]() |
jjmerelo · 使用Proc::Async从绑定管道读取 7 年前 |
![]() |
jatinBatra · 编译后生成的二进制文件会发生什么情况[关闭] 7 年前 |
![]() |
Jacobo · 从Java调用具有输入和输出重定向的C可执行文件 7 年前 |
![]() |
Ran · 每当我尝试执行命令行提示符时,Unity就会阻塞 7 年前 |
![]() |
Hatshepsut · 使用命令行参数使用region调用子流程 7 年前 |