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

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

最近接手一个小项目,要求使用谷歌的aapt.exe获取apk软件包的信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程的输出结果,当时还研究了一番,只是没有做整理。...这个问题,微软以为为我们考虑过了,我们可以从一个API可以找到一些端倪——CreateProcess。...这三个参数似乎就点中了标题中的两个关键字“标准输出”、“标准错误输出”。是的!我们正是靠这几个参数来解决我们所遇到的问题。那么如何使用这些参数呢?         我们选用的还是老方法——管道。...设置标准输出标准错误输出句柄 si.hStdError = hWrite; // 把创建进程的标准错误输出重定向到管道输入 si.hStdOutput = hWrite...我们使用STARTF_USESTDHANDLES的原因是:我们使用了标准输出标准错误输出句柄。

3.7K10

在 Bash 如何将标准错误stderr转向标准输出stdout

在将命令输出转到文件或者另外一个命令的时候,你可能会注意到错误提示打印在屏幕上。 在 Bash 和其他 Linux shells ,当程序执行时,它使用三个标准的 I/O 流。...程序输出通常到标准输出流,而错误消息通常到标准错误流。默认情况下,输入流和错误流都打印在屏幕上。 二、输出转向 转向就是将程序输出,发送到另外一个程序或者文件。...转向stdout 当保存程序输出到文件时,通常将标准错误stderr转向stdout,以便在同一个文件记录完成信息。...想要将标准错误stderr转向标准输出stdout,并且将错误信息也像标准输出一样发送到同一个文件,使用下面的命令: command > file 2>&1 > file 将标准输出stdout转向到文件...在 Bash &>和2>&1 一个意思: command &> file 四、总结 在使用命令行的时候,理解转向和文件描述符的概念是非常重要的。

1.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

C++如何获取终端输出的行数,C++清除终端输出特定的一行内容

如何清除特定的一行终端内容呢? 对于上面的两个问题,相信也会有很多小伙伴有同样的烦恼,那么就让我们一起来解决这个麻烦吧。...} // 获取当前标准输出流位置 void getpos(int* x, int* y) { CONSOLE_SCREEN_BUFFER_INFO b; // 包含控制台屏幕缓冲区的信息...GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &b); // 获取标准输出句柄 *x = b.dwCursorPosition.X...// 回到坐标(0,2)位置进行标准输入输出 (第三行第一个字节位置) cout << " "; // 在原本存在内容的情况下,清空原本行的内容 setpos(0, 2); // 回到坐标...(0,2)位置进行标准输入输出 cin >> x; setpos(x, y); //回到记录的位置 return 0; } 通过上面的代码demo就能够实现终端清空某一特定行的内容的操作了,快来尝试一下

3.9K40

在 Node.js 通过子进程操作标准输入输出

翻译:疯狂的技术宅 原文:http://2ality.com/2018/05/child-process-streams.html 在本,我们在 Node.js 把 shell 命令作为子进程运行。...在子进程运行 shell 命令 首先从在子进程运行 shell 命令开始: 1const {onExit} = require('@rauschma/stringio'); 2const {spawn...从子进程读取数据 下面的代码使用异步迭代(C行)来读取子进程的 stdout 的内容: 1const {chunksToLinesAsync, chomp} = require('@rauschma...没有这个 await,DONE 将会在调用 source.stdout 之前被输出。...在子进程之间进行管道连接 在下面的例子,函数transform() 将会: source 子进程的 stdout 读取内容。 将内容写入 sink 子进程的 stdin。

3.2K30

SUMO的输出文件获得队列转移矩阵

本次我们利用SUMO的dump仿真输出文件来获取一个队列转移矩阵(lane change rate matrix)。这一矩阵在优化中有着很重要的地位。...lane = dataNtNdSort['lane_id'] lane=lane.drop_duplicates() lane.to_csv('E:/lane.csv') 上面的python代码,dump...文件生成的csv文件截取了需要的字段,同时做了一些数据清理工作。...原因是转移矩阵要求在excel展现,而且之前有写过vba程序,所以这里python只是做一个数据清洗,毕竟几百万条的记录,直接用excel处理,电脑就挂了。...从左往右前两列为python导出的cl.csv的数据,要把列名删除。H列就是生成的lane.csv的数据。 位置正确之后,我们就可以利用excel的VBA自动实现了。 VBA代码如下。

1.9K30

【C++】标准流与命名空间简介 ( Visual Studio 2019 创建 C++ 项目 | iostream 标准流 | std 标准命名空间 | cout 控制台输出 )

用于处理 标准输入输出 文件输入输出 等操作 ; iostream 常用标准输入输出流 : cin : 标准输入流 , 标准输入设备 读取数据 ; cout : 标准输出流 , 向 标准输出设备...输出数据 ; cerr : 标准错误流 , 向 标准错误设备 输出错误信息 ; fstream : 标准文件输入输出流 , 文件 读取数据 , 向文件输出数据 ; 包含了 iostream 头文件后...标准输出流 , 可以 将 数据 输出标准输出 ( 控制台 ) , 在此处其作用是进行标准输出 , 向控制台输出内容 ; 左移操作符 << 操作符 , 用于将右侧的 字符串内容数据 发送到左侧的流...的方式在控制台输出文本 // cout 的作用是进行标准输出 , 向控制台输出内容 // C++ 的 左移操作符 << // 在 C++ 语言中进行了操作符重载 进行了功能增强 /...World\n"); // 使用 C++ 的方式在控制台输出文本 // cout 的作用是进行标准输出 , 向控制台输出内容 // C++ 的 左移操作符 << // 在 C++

23520

按出现次数少到多的顺序输出数组的字符串

(2)把数组中有重复的字符串,按出现次数少到多的顺序打印出来,每个字符串只打印一次 思路 C++,vector按先后顺序存储数据,因此可把没重复的字符串按顺序存到vector。...map默认是按key从小到大的顺序存放数据,所以可把有重复的数据存到map,并且以出现次数为key,以字符串为value 代码 #include #include <vector...int count = countInArray(s, s[i]); if(1 == count) { // 如果只出现一次,按先后顺序放到vector...v.push_back(s[i]); } else { // 出现多次的,放到map,以次数为key,字符串为value...m[count] = s[i]; } } // 把map的字符串,按出现次数少到多的顺序,加到vector map<int, string

2.5K60

按出现次数少到多的顺序输出数组的字符串(纠正)

有一个数组为{"Liu Yi", "Chen Er", "Zhang San", "Chen Er", "Chen Er", "Li Si", "Li Si", "Wang Wu"}, 要求: (1)把数组没重复的字符串按原先的先后顺序打印出来...(2)把数组中有重复的字符串,按出现次数少到多的顺序打印出来,每个字符串只打印一次 思路 把字符串作为key、出现次数作为value,存到map; 再把第一个map的出现次数作为key、对应的字符串作为...{ cnt = m[s[i]]; } m[s[i]] = ++cnt; //把重复次数和list存到另一个map...,而不是用新生成的list li = m2[cnt]; } if(cnt > 1) { // 若重复次数n...变为n+1(这里n大于或等于1) // 要把元素n所对应的list移出,放到n+1所对应的list list oldList = m2

2.1K70

java 标准输出标准错误 out与 err 区别 用法 联系 java的out与err区别 System.out和System.err的区别 System.out.println和Sy

本文关键词: java 标准输出标准错误    out与 err 区别 用法 联系  java的out与err区别  System.out和System.err的区别 System.out.println...和System.err.println的区别 Java重定向System.out和System.err 概述 操作系统一般都有三个标准文件描述符:标准输入,标准输出标准出错 这是操作系统的一种抽象表达...不同的语言需要有不同的具体表达方式,当然也不过是另一种包装抽象 比如c++的  cin cout cerr Java则是的System.in,System.out,System.err ---- 示例...此流已打开并准备接受输出数据。     通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。 err: “标准”错误输出流。此流已打开并准备接受输出数据。     ...不会 而且一般在IDE中使用err ,都会变色的比如eclipse红色 System.setErr()System.setOut() 可以重定向这两个流 System.setOut(new PrintStream

1.5K30

【Android Gradle 插件】自定义 Gradle 任务 ⑯ ( 任务容器 TaskContainer 搜索 Gradle 任务 | 压缩 packageDebug 任务输出文件 )

文章目录 一、任务容器 TaskContainer 搜索 Gradle 任务 二、压缩 packageDebug 任务输出文件 Android Plugin DSL Reference 参考文档 :...TaskContainer getTasks(); // 在 Gradle 分析完成之后执行的代码 void afterEvaluate(Closure var1); } 通过 Gradle 任务名称 , ...packageDebug 任务 , 查询到该任务后 , 拿到该任务的输出 ; 查找 Gradle 任务的操作 , 必须在 Project#afterEvaluate 函数的闭包参数执行 , 否则静态查找时查找不到...zip(type: Zip){ // 设置输出压缩包名称 archiveName 'packageDebug.zip' // 设置输出目录...: 同时在 app/build/myZip/ 目录下 , 生成了 packageDebug.zip 文件 , 该压缩包就是压缩的 packageDebug 任务的输出文件 ; 查看该压缩包的内容如下

67910

python return换行(python的换行)

3次方相乘)使用print打印出一个变量可以让输出结果不换行显示,在打印变量名后加上一个逗号将xrange函数遍历的数值给予一个列表,然后使用for循环对列表进行遍历,将遍历出来的数值全部相加得出…...在使用闭合操作符时,单一语句可以哭啊多行. 例如: 在含有小括号,括号,花括号时可以多行书写 . 另外就是三引号包括下的字符串也可以跨行书写 ....len(s)5在转义字符的应用,最常见的就是换行符n的… print(456),123456 in:python print 输出不换行python 版本 2.7 print123,print456加逗号缺点...python垃圾回收主要以引用计数为主,标记-清除和分代清除为辅的机制,其中标记-清除和分代回收主要是为了处理循环引用的难题… 整数,如 1长整数 是比较大的整数浮点数 如 1.23、3e-2复数 如...以此类推,嵌套的时候也应该遵循这个标准! 记不记得c和java的&&和||、! 这些逻辑运算符,在python中有多个条件时用and和or判断,还有not。?

7.1K20

【Java 基础篇】Java标准输入流详解:读取用户输入的完整指南

在这些应用,与用户进行交互是一项重要的任务。本文将重点介绍Java标准输入流,它是Java程序中用于用户获取输入的关键组成部分。 什么是标准输入流?...在Java标准输入流通常称为System.in,它是一个InputStream对象,用于标准输入设备(通常是键盘)读取数据。...使用输入文件 有时你可能想从文件而不是标准输入读取数据。你可以使用 FileInputStream 或 FileReader 来文件读取数据。...null) { System.out.println("文件内容:" + line); } } } } 这个示例展示了如何文件读取文本数据...希望本文能够帮助你更好地理解和使用Java标准输入流,从而提升你的Java编程技能。如果你想进一步深入学习Java的输入和输出操作,还可以研究Java的文件操作、网络通信等更高级的主题。

71120

Python进阶教程笔记(五)读写文件

一、向Python程序输入内容 到目前为止,我们编写的程序都是直接运行的,在运行过程并没有接收程序外部的输入。比如,通过Python程序,我们可以快速算出1到100的乘法结果。...num) result = 1 for i in range(1, num): result = result * i print(result) 二、打开文本文件 通过print()可以数据输出数据...,通过input()可以向程序输入数据,但这些都是标准屏幕上的操作,本节课学习文件的读写操作。...读取多行 文件对象提供readlines()方法,可以读取多行字符,返回一个列表。它提供一个hint参数,表示指定读取的行数,没有指定则默认以列表的形式返回文件所有的字符串。...模式 描述 w 打开一个文件进行写入,如果文件内容已存在,会清除原有的内容 wb 以二进制格式只写模式打开一个文件,会清除原有的内容 w+ 打开一个文件进行读写,如果文件内容已存在,会清除原有的内容

60231
领券