首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在父进程中读取子(外部)进程的标准输出和标准错误输出结果

最近接手一个小项目,要求使用谷歌的aapt.exe获取apk软件包中的信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程的输出结果,当时还研究了一番,只是没有做整理。...这个API的参数非常多,我想我们工程中对CreateProcess的调用可能就关注于程序路径(lpApplicationName),或者命令行(lpCommandLine)。...它是我们启动子进程时,控制子进程启动方式的参数。...我们之后将hWrite交给我们创建的子进程,让它去将信息写入管道。而我们父进程,则使用hRead去读取子进程写入管道的内容。...设置标准输出和标准错误输出句柄 si.hStdError = hWrite; // 把创建进程的标准错误输出重定向到管道输入 si.hStdOutput = hWrite

3.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在Ubuntu 14.04上的Docker容器中运行Nginx

    你会注意到它有一个荒谬的名字,如nostalgic_hopper; 如果在创建容器时未指定,则会自动生成这些名称。 我们还可以看到hello-world示例容器在3分钟前运行并在3分钟前退出。...使用docker-nginx命令删除现有容器: sudo docker rm docker-nginx 在下一步中,我们将向您展示如何在分离模式下运行它。...docker rm docker-nginx 现在我们将进入容器的最终版本,快速停止生成自定义网站文件。...让我们在主目录中为我们的网站内容创建一个新目录,然后通过运行下面显示的命令移动到该目录。...关于卷的背景信息; 也就是说,链接到容器中的永久服务器内容: Docker允许我们将目录从虚拟机的本地文件系统链接到容器。 在我们的例子中,由于我们想要服务器网页,我们需要为容器提供要呈现的文件。

    2.8K00

    Nextflow生物信息流程(一):简介

    Nextflow通过容器来实现可扩展且可重复的数据分析工作流程。它适用于最常见的脚本语言编写的流水线。其流畅的DSL简化了在云和集群上实现和部署复杂并行的生信数据分析流程。...Nextflow设计基于这样的思想:即Linux是数据科学的通用语言。(PS:这也提示我们,做生信为什么要学Linux。)...可重复性 Nextflow支持Docker和Singularity容器技术。结合GitHub代码共享平台的集成,这使你能够编写自包含的流水线,管理版本,并快速重现以前的任何配置。...统一并行性 Nextflow基于数据流编程模型,极大地简化了编写复杂分布式流水线的过程。 并行化由进程的输入和输出声明隐含地定义。...由此产生的应用程序具有固有的并行性,可以在不必适应特定平台架构的情况下,透明地实现纵向或横向扩展。 恢复检查点 在流水线执行过程中,所有生成的中间结果都会被自动跟踪。

    81712

    2023牛津纳米孔16S测序数据新的探索

    重新试了下之前的分析软件安装部分 这里修正下之前笔记中的问题,可能会报错这种,可能是软件版本的不兼容这种。...请注意,不能从包含任何空格字符的路径(指向工作目录的目录列表)运行 Stream 2A BLAST 搜索 SituSeq旨在由具有任何生物信息学经验的研究人员使用标准规格笔记本电脑实施。...介绍是ONT 16S 测序数据的从头聚类和共识序列生成。官方推荐docker方式,conda方式看起来要建立n个环境。.../viz_webapp/),用于可视化完整或部分流程输出。 NanoRTax流程是使用 Nextflow 构建的,Nextflow 是一种工作流工具,可以以非常便携的方式跨多个计算基础设施运行任务。...它带有 conda 环境和 docker 容器,使安装变得简单,结果高度可重复。

    43231

    生信自动化流程搭建 01 | Nextflow的介绍与安装

    我这里使用 Nextflow 作为流程搭建工具,它有着很多强大的功能: 简化数据密集型pipelines的编写 胶水特性:只要可以在Linux系统中运行的程序或不同的编程语言脚本,都可以放在流程中 支持并行计算环境...通过在终端中输入以下命令来执行脚本: nextflow run tutorial.nf 它将输出类似于以下文本的内容: N E X T F L O W ~ version 19.04.0 executor...因此,很有可能将以不同的顺序打印出最终结果: WORLD! HELLO 十六进制数字(如22/7548fa)标识唯一的流程执行。这些数字也是执行每个进程的目录的前缀。...可以检查由它们生成的文件,使用这些数字来查找特定于进程的执行路径。 修改并恢复 Nextflow跟踪管道中执行的所有进程。如果修改脚本的某些部分,则仅重新执行实际更改的进程。...默认情况下,管道结果缓存在目录中$PWD/work。根据的脚本,此文件夹可能会占用大量磁盘空间。如果确定不会继续执行管道,请定期清理此文件夹。

    3.7K10

    生信自动化流程搭建 04 | 输出 output

    下表中列出了可以在输出声明块中使用的限定符: 预选赛 语义的 val 发送具有在输出通道上指定的名称的变量。 file 发送在输出通道上指定名称的由进程生成的文件。...path 发送在输出通道上指定名称的由进程生成的文件(替换file)。 env 使用在输出通道上指定的名称发送在流程环境中定义的变量。 stdout 通过输出通道发送已执行的进程标准输出。...使用Nextflow,在大多数情况下,您无需为输出文件命名,因为每个任务都在其自己的唯一临时目录中执行,因此由不同任务生成的文件永远不会相互覆盖。...使用Nextflow 19.10.0或更高版本时,路径限定符应优先于文件,以处理进程输出文件。...可以添加optional true到输出声明中,告诉Nextflow如果未创建声明的输出,则不要使进程失败。

    72210

    生信自动化流程搭建 03 | 输入 input

    Nextflow会将其暂存在流程执行目录中,并且可以使用输入声明中指定的名称在脚本中对其进行访问。...这允许使用与当前执行上下文一致的名称在脚本工作目录中暂存输入文件。...注意: 在大多数情况下,您不需要使用动态文件名,因为每个进程都在其自己的私有临时目录中执行,并且输入文件将由Nextflow自动登台到该目录中。这样可以保证具有相同名称的输入文件不会相互覆盖。...该选项stageAs使您可以控制如何在任务工作目录中命名文件,并提供特定的名称或名称模式,如“ 多个输入文件” 部分所述: process foo { input: path x, stageAs...验证此条件后,它将消耗来自各个通道的输入值,并生成任务执行,然后重复相同的逻辑,直到一个或多个通道不再有内容。

    1.1K10

    Docker OSX快速入门

    它是用Go编写的,Go编译生成的二进制文件具有不需要其他外部依赖即可运行的优点。此外,这个项目进展之快以至于软件包管理器中的版本都过时了。...这是因为Docker守护进程没有运行。事实上,它不能在Mac上运行!因此,您必须使用boot2docker,这是一个在VirtualBox中运行并具有Docker守护进程的小型虚拟机。...第一行FROM指示Docker从容器公用存储库中调出python的镜像,并使用标签(如2.7)指定镜像版本。 第二行ADD将您的代码从当前目录复制到Docker容器的/code目录中。...你甚至可以编辑本地文件系统上的代码,它会在Docker中同步(感谢-v(-v参数会指定容器和主机共享的目录)),修改Flask将自动重新启动。...在AWS上运行相同的容器 现在,我们来看看如何在AWS上运行同一个容器。首先请注册Docker Hub,这是免费的。 假设你的Docker Hub用户名是foobar。

    4.6K100

    生信自动化分析流程 nf-core 的离线运行(图文详解)

    需要几个额外的步骤即可在本地获取到一个完整的流程 Nextflow 在系统安装好 Nextflow 下载最新版:https://github.com/nextflow-io/nextflow/releases...docker,singularity和conda的配置文件。...您可能会发现您的系统已经有一个共享的配置文件(请参阅https://github.com/nf-core/configs)。如果没有,请按照存储库自述文件中的说明添加集群。...Nextflow在三个位置来查找这些文件: 用户家目录: ~/.nextflow/config 分析工作目录: nextflow.config 在命令中指定路径: -c path/to/config (...配置加载顺序是: 硬编码流程的默认设置 >> 用户家目录 >> 工作目录 >> 命令-c顺序执行 >> 命令--parameter指定参数 更多参数:https://www.nextflow.io/docs

    2.3K20

    Argo流程引擎

    Argo流程引擎 Argo的步骤间可以传递信息,即下一步(容器)可以获取上一步(容器)的结果。结果传递有2种: 1. 文件:上一步容器新生成的文件,会直接出现在下一步容器里面。 2....1.1文件怎么从上一个容器跑到下一个容器里的? Argo流程,可以指定2个步骤之间,传递结果文件(Artifact)。即假设流程为:A->B,那么A容器跑完,B容器可以取得上一个容器的输出文件。...1.1.3中转文件具体实现(docker cp) 现在我们打开Argo看看具体怎么实现的。因为你要取一个容器里面的文件,或者把一个文件放入一个容器,也不容易实现呢。...1.1.4中转实现的其他方式 实际上,通过sidecar容器提权到root权限,然后从用户的容器里面copy任意文件(即 docker cp命令),只是Argo默认的实现。...包括可以查看每一步的训练输出结果,直接通过UI进行可视化的图形展示。

    2.8K00

    nf-celescope — 新格元新流程

    工欲善其事必先利其器 nf-celescope nf-celescope 可以说是celescope的升级版,采用Nextflow框架,优化计算资源配置,在参考基因定量部分采用更快的STARsolo。...尽量不要去动默认环境的java版本 ##首先是创建一个新环境,安装nextflow mamba create -n nf_celescope nextflow mamba activate nf_celescope...--outdir ##保存结果的输出目录 --star_genome ##STAR参考基因组目录路径 --max_cpus ##最大调用cpu。默认16 --max_memory ##最大使用内存。...可选[docker、singularity、podman、shifter、charliecloud、charliecloud、conda]。...出于安全的考虑,没有配置docker。所以这里我们调用Singularity 。 运行日志-部分 可能报错 如果是第一次使用nextflow流程的话,可能环境会麻烦一点。

    18910

    生信自动化流程搭建 05 | 通道 Channels

    通常使用工厂方法(如from,fromPath等)创建队列通道,或使用map,flatMap等通道操作符将其链接起来。 队列通道也是由使用into子句的流程输出声明创建的。...该定义意味着同一队列通道不能用作进程输出多次,而不能用作进程输入一次。...当输入在from子句中指定简单值时,进程将隐式创建一个值通道。此外,还将为输入仅是值通道的过程隐式创建一个值通道作为输出。...这意味着通道值是一个接一个地连续捕获的,即使其他通道中还有其他值,第一个空通道也会导致进程执行停止。...第二个返回所有以.fa后缀结尾的隐藏文件。 最后一个示例返回该路径中的所有文件(隐藏和非隐藏)。 目录路径 默认情况下,全局模式仅查找符合指定条件的常规文件路径,即它不会返回目录路径。

    1.2K20

    生信自动化流程搭建 02 | 脚本

    脚本 脚本是字符串声明,它定义了由过程执行到执行任务的命令。 一个进程仅包含一个脚本块,并且当该进程包含输入和输出声明时,它必须是最后一个语句。 输入的字符串在主机系统中作为Bash脚本执行。...您可以使用自己喜欢的脚本语言(例如Perl,Python,Ruby,R等),甚至可以将它们混合在同一管道中。 管道可以由执行不同的任务的进程组成。...使用Nextflow,您可以选择更适合指定进程执行的任务的脚本语言。 例如,对于某些进程,R可能比Perl有用,在其他进程中,您可能需要使用Python,因为它提供了对库或API等的更好访问。...this', 'that' script: template 'my_script.sh' } Nextflow my_script.sh在目录templates中寻找模板文件,该目录必须存在于...相同的规则适用于脚本模板中定义的变量。 本机执行 Nextflow进程可以执行除系统脚本以外的本机代码,如前几段所示。

    2.5K10

    2024年3月份最新大厂运维面试题集锦(运维15-20k)

    什么是容器化?Docker是如何工作的? 答案: 容器化是一种虚拟化技术,允许在隔离的环境中运行和部署应用,而不依赖于底层操作系统。...Docker是一个流行的容器化平台,它使用容器来打包应用及其依赖项,使得应用能够在任何支持Docker的环境中运行。 8. 解释Kubernetes的工作原理和它的主要组件。...解释什么是Docker容器以及它与虚拟机的区别。 答案:Docker容器是一种轻量级的、可打包的、独立的软件包含环境,它允许软件在任何支持Docker的系统上以相同的方式运行。...如何在Shell脚本中重定向输出和输入? 答案: 使用>将命令的输出重定向到文件中,如果文件已存在,则覆盖。 使用>>将命令的输出追加到文件中。...解释如何在Shell脚本中处理文件和目录。 答案: Shell脚本提供了多种处理文件和目录的命令,如cp(复制)、mv(移动)、rm(删除)、mkdir(创建目录)等。

    3.1K10

    Docker常见面试题

    文章目录 什么Docker? Docker 与虚拟机有何不同? 什么是Docker 镜像? 什么是Docker 容器? Docker 容器有几种状态?...Docker主要专注于在应用程序容器内自动部署应用程序。应用程序容器旨在打包和运行单个服务,而系统容器则设计为运行多个进程,如虚拟机。因此Docker被视为容器化系统上的容器管理或应用程序部署工具。...Cgroups不允许容器消耗比分配给它们更多的资源。虽然主机的所有资源都在虚拟机中可见,但无法使用。这可以通过在容器和主机上同时运行top 或htop来实现。所有环境的输出看起来都很相似。...Docker容器包括应用程序及其所有依赖项,作为操作系统的独立进程运行。 Docker 容器有几种状态? 四种状态:运行、已暂停、重新启动、已退出。 Dockerfile 中最常见的指令是什么?...Docker Swarm 提供标准的Docker API,任何已经与Docker守护进程通信的工具都可以使用Swarm透明地扩展到多个主机。 如何在生产中监控Docker?

    1.3K20

    Docker 容器命令:解析容器化应用程序的运行时

    镜像是在docker中的,应用是在一个镜像中的,如何在容器中运行一个程序,如果直接使用docker访问是不行的,因为此时的应用只是在某个镜像下启动了,相当于在docker内部,而不是docker本身,此时就需要将镜像中的应用程序的启动端口映射给...4.2.10 查看容器的日志信息 docker logs 容器名(容器ID) : 该命令可以显示容器的标准输出和标准错误输出,以及容器中正在运行的进程的日志信息。...docker save 命令可以使用 -o 选项将导出的镜像保存到指定的文件中,而 docker export 命令则直接将导出的容器文件系统输出到标准输出。...使用该命令之后会在控制台输出容器文件系统中的更改情况,包括增加、删除、修改的文件和目录。...而 docker pause 命令则会暂停容器中所有进程的执行,但容器的状态仍然是“运行中”,容器的其他资源(如网络端口、文件系统等)仍然处于占用状态。

    34830

    【容器安全系列Ⅴ】- Linux强制访问控制:AppArmor 和 SELinux

    在本系列中,我们介绍了各种安全层,这些安全层不仅可以将容器与主机上的其他进程隔离开来,还可以将容器与其底层主机隔离开来。...在这篇文章中,我们将讨论 AppArmor 和 SELinux 如何在我们之前讨论过的其他隔离层之外提供额外的限制。...从这个输出中,我们可以看到几个有趣的信息:AppArmor 已加载并正常工作。系统上定义了 34 个配置文件。目前,没有进程具有启用的 AppArmor 配置文件。    ... 启动名为“home_container”的新容器,该容器将我们的主目录挂载到容器中。...如果我们尝试在容器内的 /hosthome 目录中创建一个文件,即使我们以 root 用户身份运行,我们也会被阻止。

    26010
    领券