将stdout、stderr导入到指定文件

2024-02-15 04:38
文章标签 指定 stdout 导入到 stderr

本文主要是介绍将stdout、stderr导入到指定文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在编写程序中,经常用到stdout、stderr作为输出,通常stdout用于输出程序运行正常时的信息,stderr用于输出程序出错时的信息。我们可以通过一些命令将stdout、stderr在屏幕上的输出导入到指定的文件。
  1、准备工作
  带有stdout、stderr输出的test.cpp
  
  /*
  ** test.cpp
  */
  #include <iostream>
  #include <stdlib.h>
  using namespace std;
  int main(int argc, char *argv[])
  {
   cout << "This is stdout...." << endl;
   cerr << "This is stderr..." << endl;
  
   return 0;
  }
  用g++编译该文件:
  
  $ g++ test.cpp -o test
  执行 test ,屏幕上打印stdout、stderr的信息
  
  This is stdout....
  This is stderr...
  2、导入stdout的结果到指定文件
   在csh、sh下,使用”>”将stdout的结果导入到指定文件,本例中执行
  
  ./test > out.log
   查看out.log,可以看到里面写有“This is stdout....”。
  使用”>>”将stdout的结果追加到指定文件中,本例中执行
  
  ./test >> out.log
   查看out.log,可以看到增加了一行“This is stdout....”。
  3、导入stderr到指定文件
  在 csh 中,用 ">" 将 stdout 导向,用 ">&" 则能将 stdout 与 stderr 一起导向。可是不能只单独把 stderr 转向。最好的方法是
  
  (./test > out.log) >& err.log
  以上的命令会开一个 subshell 执行 "./test";而这个 subshell 的 stdout 则被转向到out.log,同时这个 subshell 的 stdout 和 stderr 则都被转向到 err.log,但是因为 stdout 已经先被转向了, 所以 stderr 就会被转到 err.log 了。
  如果你只是单纯的不想把 stdout 做转向,那么就用 sh 来帮你吧。
  
  sh -c './test 2> err.log'
  如果同时需要得到stdout、stderr的信息,也很简单,直接使用>&就可以了。
  
  ./test >& err.log(王朝网络 wangchao.net.cn)

这篇关于将stdout、stderr导入到指定文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/710450

相关文章

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

[轻笔记] ubuntu Shell脚本实现监视指定进程的运行状态,并能在程序崩溃后重启动该程序

根据网上博客实现,发现只能监测进程离线,然后对其进行重启;然而,脚本无法打印程序正常状态的信息。自己通过不断修改测试,发现问题主要在重启程序的命令上(需要让重启的程序在后台运行,不然会影响监视脚本进程,使其无法正常工作)。具体程序如下: #!/bin/bashwhile [ 1 ] ; dosleep 3if [ $(ps -ef|grep exe_name|grep -v grep|

[轻笔记] jupyter notebook 指定conda虚拟环境

安装插件 conda install nb_conda 进入conda env conda activate ${env_name}conda install ipykernelconda deactivate #3. 运行jupyter notebook conda activate # 需要先进入conda环境,非常重要jupyter notebook 会发现,在ju

获取所有classpath指定包下类的所有子类

1.问题 开发过程中,有时需要找到所有classpath下,特定包下某个类的所有子类,如何做到? 2. 实现 比较常见的解决方案是自己遍历目录,查找所有.class文件。 下面这个方法使用spring工具类实现,简化过程,不再需要自己遍历目录 /*** 获取在指定包下某个class的所有非抽象子类** @param parentClass 父类* @param packagePat

go json反序列化成指定类型

简介 简单的介绍一下使用go的json库,将json字符串反序列化成接口中指定的实现类 代码如下 package usejsontype ExamInterface interface {CheckRule(data any) bool}type IntStru struct {DefalutVal int `json:"defalut_val"`Max int `json:

利用PL/SQL工具如何给指定用户分配权限

选中指定的表--右键--编辑--就出现右边的内容了,选择权限,分配用户某个权限就行了;

实现日期往前或往后或跳转到指定月份或天数

//月份跳转 //初始日期 String yearMonth = "201702"; String yearMonthStr = ""; //往前(负数)或往后(正数) int add = -2; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); Date source = sdf.parse(yearMonth); Cal