腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
读取子进程标准输出,同时将其保留在缓冲区中
,可以通过以下步骤实现:
创建子进程:使用操作系统提供的相关函数或库,如fork()函数,在父进程中创建一个子进程。
子进程输出重定向:在子进程中,将标准输出重定向到一个管道(pipe)中。这样子进程的输出将被发送到管道而不是终端。
父进程读取输出:在父进程中,通过读取管道来获取子进程的标准输出。可以使用操作系统提供的相关函数或库,如read()函数,从管道中读取数据。
缓冲区处理:在父进程中,可以将读取到的子进程标准输出保存在一个缓冲区中。可以使用字符串、数组或其他数据结构来存储输出内容。
以下是一些相关概念和术语的解释:
子进程:在操作系统中,由父进程创建的新进程称为子进程。子进程可以执行独立的任务,并与父进程并发运行。
标准输出:在操作系统中,每个进程都有三个默认的标准文件描述符,其中标准输出(stdout)是用于向终端或其他输出设备输出信息的文件描述符。
缓冲区:在计算机科学中,缓冲区是一块用于临时存储数据的内存区域。可以使用缓冲区来暂时存储子进程的标准输出,以便后续处理或显示。
管道:在操作系统中,管道是一种进程间通信机制,用于在两个进程之间传递数据。可以将子进程的标准输出重定向到一个管道中,以便父进程读取。
推荐的腾讯云相关产品和产品介绍链接地址:
腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
腾讯云云函数(SCF):https://cloud.tencent.com/product/scf
腾讯云容器服务(TKE):https://cloud.tencent.com/product/tke
腾讯云消息队列(CMQ):https://cloud.tencent.com/product/cmq
腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
相关搜索:
如何在VB6中读取子进程的标准输出?
无法使用Python从Windows上派生的子进程中读取标准输出
Jupyter notebook中Python子进程的实时标准输出
Node.js中的子进程标准输出和标准错误列大小
通过父进程读取数据,并使用c++中的管道将其发送给子进程。
在python中运行子进程,两者都会“实时”显示输出并将其保存到变量中
微信怎么更新
微信登陆图片
微信如何更新
微信群发红包
相关搜索:
如何在VB6中读取子进程的标准输出?
无法使用Python从Windows上派生的子进程中读取标准输出
Jupyter notebook中Python子进程的实时标准输出
Node.js中的子进程标准输出和标准错误列大小
通过父进程读取数据,并使用c++中的管道将其发送给子进程。
在python中运行子进程,两者都会“实时”显示输出并将其保存到变量中
微信怎么更新
微信登陆图片
微信如何更新
微信群发红包
页面内容是否对你有帮助?
有帮助
没帮助
相关·
内容
文章
问答
(7816)
视频
沙龙
1
回答
读取
子
进程
标准
输出
,
同时
将其
保留在
缓冲区
中
、
、
是否可以
读取
子
进程
的stdout,但在程序结束时仍保留整个process.communicate() 例如,我有一个python脚本,它在Popen
子
进程
中
启动一个c#应用程序,并检查它实时生成的日志文件,以确定它所处的状态,但某些错误不会被转储到日志
中
,而是存在于stdout
中
,并且某些错误会导致
进程
挂起。我希望能够检测到该
输出
,并在这些情况下能够终止
进程
。在执行process.stdout.re
浏览 11
提问于2020-06-03
得票数 0
回答已采纳
2
回答
流命令
输出
进度
、
我正在编写一个服务,它必须将执行的命令的
输出
流到父命令和日志。当有一个很长的
进程
时,问题是cmd.StdoutPipe给出了最终的(字符串)结果。是否可以对正在发生的事情提供部分
输出
,如在shell
中
cmd := exec.Command("sh", "-c", "some long runnig task"
浏览 2
提问于2015-06-09
得票数 13
回答已采纳
1
回答
独立地从Java应用程序执行shell脚本
、
我有一个java应用程序,它由一个线程组成,它监视数据库
中
包含要执行的shell脚本的表。我每隔几秒钟查一次数据库。对于一个脚本,执行它(通过Process类),并在表中等待另一个脚本。我的问题是:有时,脚本
中
的某些命令会失败。线程捕获错误流并
将其
记录在数据库
中
。但是,它会继续记录消息,并且控件不会从脚本返回到Java,因此数据库
中
的后续shell脚本无法执行。 这附近有工作吗?
浏览 0
提问于2009-05-14
得票数 1
1
回答
为什么当我使用dup2()之前使用叉子(),它不能工作?
、
、
、
通常,fork()创建一个与父
进程
完全相同的新
子
进程
。但是,当我在分叉之前使用dup2时,它似乎不能正常工作。但是当我在
子
进程
中使用dup2()时,它可以工作.我不明白,因为通常叉子会创建调用
进程
的副本. 谁能解释一下原因吗?
浏览 1
提问于2019-03-20
得票数 2
回答已采纳
1
回答
popen ("tar xvf tarball.tar")在调试
中
工作,但不支持发布版本。
、
、
、
当我运行我的程序的调试构建时,popen("tar xvf /tmp/example.tar -C /tmp/existingdir")工作,但是当我在版本
中
运行这个命令时,popen调用总是失败的。
浏览 2
提问于2014-09-01
得票数 0
回答已采纳
6
回答
找出管道的
读取
端当前是否阻塞
、
、
、
我试图找出一个
子
进程
是否在等待用户输入(而不解析其
输出
)。在Unix上的C语言中,是否有可能确定管道的
读取
端当前是否存在read()调用阻塞? 当子程序退出时,丢弃
缓冲区
..
浏览 4
提问于2009-01-16
得票数 1
1
回答
Java运行时执行C语言程序没有
输出
、
、
我编写了一个简单的C程序,并
将其
构建为"AskStack.exe“。\n"); return 0;然后我使用java程序来执行C程序,我想得到
输出
。java程序没有
输出
任何内容。我注意到,如果删除C程序的getchar(),它将得到
输出
。但我的目的是与C程序交互。 那么我应该如何修改我的java代码呢?提前谢谢。
浏览 3
提问于2015-11-04
得票数 2
回答已采纳
1
回答
FFmpeg停止
进程
C#
、
我相信我的"FFmpeg“过程被困在一个无限循环中,或者它在等待什么,我不知道这是什么。它不会通过WaitForExit方法。-ss 0 -i output.mp4 -t 10 -an -y test.mp4using (Process process = new Process()) process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectS
浏览 1
提问于2018-05-13
得票数 4
回答已采纳
2
回答
哪些平台的
缓冲区
大小有限?
、
Groovy 页面提到: 这个片段来自JDK。
浏览 3
提问于2010-02-23
得票数 2
回答已采纳
1
回答
正确使用ProcessBuilder
、
在研究之后,我注意到使用java的ProcessBuilder的“正确”方法是生成另外两个线程来管理新创建的
进程
的stdout/stderr,这样它就不会挂起,如下所示:2.)此外,如果要将流重定向到stdout,那么只让父
进程
吞下stdout流,而不必担心死锁是否可以接受?
浏览 3
提问于2010-06-16
得票数 3
1
回答
为什么java
中
的processBuilder在5分钟后挂起?
、
、
而
进程
挂起,如果它需要超过5分钟,并显示在
进程
上没有任何改善,直到我退出该
进程
。
浏览 1
提问于2016-06-29
得票数 3
回答已采纳
1
回答
将命令行论证记录到log4j
中
、
、
、
、
在我的java代码
中
,我创建了执行某些外壳命令的场景,特别是执行-scp-和-mv-命令。是否可以记录执行结果?例如,如果没有找到要复制的文件,或者如果-scp-或-mv-没有正确发生,它会记录到我准备的日志文件
中
。
浏览 0
提问于2011-10-18
得票数 0
2
回答
当通过C#的Process类生成程序时,处理
标准
错误和程序
输出
的正确方法?
、
、
、
、
我阅读了的文档,其中有以下引用: string error = proc.StandardError.ReadToEnd(); string
浏览 2
提问于2010-11-09
得票数 7
回答已采纳
2
回答
如何在python中导入已完成
进程
的环境变量?
、
、
、
想象一下,您有一个shell脚本"a.sh":在python
中
,我想做一些类似的事情:env={} os.spawnlpe(os.P_WAIT
浏览 1
提问于2010-06-24
得票数 1
回答已采纳
1
回答
Linux操作系统-来自父
进程
、
子
进程
、父
进程
的输入-
输出
管道
、
、
、
父c-shell
读取
Linux命令行,并派生子
进程
来执行该命令。
子
进程
在收到父
进程
发出的已准备好执行命令的信号之前,不会执行该命令。它可以处理为命令提供参数的输入文件,也可以直接从命令行
读取
参数。它将
输出
发送到
输出
文件的方式是通过
子
进程
将其
stdout重定向到管道,一旦父
进程
接收到
子
进程
已完成运行的信号,就从该管道
读取
数据。它可
浏览 0
提问于2016-02-27
得票数 0
1
回答
通过Java过程生成器执行bash
我试图通过JAVA代码执行一个脚本,但是它没有被执行。我尝试了execute() of Process类,但后来经过一些搜索后切换到了ProcessBuilder,希望能做到这一点。但剧本不会被执行。String fileName = "pkgdiff.sh";ProcessBuilder builder = new ProcessBuilder("/bin/sh", fileName);Proc
浏览 2
提问于2017-01-24
得票数 0
1
回答
Python3的Popen
中
的`bufsize`参数值有什么区别?
、
如果我忽略所有的
输出
,将stdout和stderr设置为subprocess.DEVNULL,它就不会卡住。
浏览 0
提问于2020-08-27
得票数 0
1
回答
来自Java的慢系统命令
、
、
我正在从Java
中
调用bash脚本。注意:我在Netbeans
中
运行它,这似乎是问题所在。当我运行文件命令行时,速度很快。netbeans
中
的执行与命令行之间的性能是巨大的。 非常感谢。
浏览 8
提问于2015-02-25
得票数 2
回答已采纳
1
回答
从Java运行R脚本
、
、
我有一个需要从Java调用并运行的R脚本。我尝试了以下代码:Runtime.getRuntime().exec("Rscript pathTo/R/myScript.R")。我从windows命令运行它,它工作得很好,但是当我在Eclipse中用这段代码运行java class时,什么也没有发生。控制台没有显示任何东西,没有错误,没有日志。有人能告诉我如何从Java运行这个脚本吗?
浏览 1
提问于2012-08-10
得票数 0
1
回答
如何知道子
进程
的stdout数据是否已被分解为
缓冲区
块?
、
、
因此,当在node.js中使用
子
进程
时,我们从缓冲流
中
读取
子
进程
的
标准
输出
。那么,我如何知道一个
缓冲区
块是包含完整的
标准
输出
消息还是只包含其中的一部分呢?我怎么知道一块是不是最后一块?我之所以这样问,是因为在我的例子
中
,父
进程
和
子
进程
通过相互发送JSON进行通信,我应该知道JSON什么时候实际结束,什么时候被拆分。
浏览 12
提问于2019-07-23
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Debug笔记丨自带的 print 函数居然会报错?
用Python复制文件的九种编制
用Python复制文件的9个方法
30天拿下Rust之输入输出
Python-调用系统命令的方法,快速完成任务
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券