1、libxml2 使用过程中,有时 libxml2里面会报一些错误信息,在 控制台的程序中 这些信息看起来比较乱,不易观察,我想将这些信息重定向到 文件中

 1.1、本进程内:试着 将标准输出,标准错误等 重定向,但是 我的代码里面的标准输出和标准错误 都能重定向,但是libxml2中的信息 却重定向不成功... 试了好些方法都不行...

  忘了具体 使用了哪些方式了....

 1.2、父进程:通过父进程来重定向子进程的 标准输出和标准错误 到文件 --> 成功了 而且 不麻烦(这里就是采用的这个方式)

2、

  2.1、参考网址:

  2.2、测试代码:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h> #include <io.h> #include <map>
#include <math.h>
#include <list>
#include <string>
#include <sstream>
#include <algorithm>// std::find(...)
#include <vector>
using namespace std; //#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std; void main()
{
// ZC: baidu搜索"STARTUPINFO hStdOutput 重定向"
// ZC: https://blog.csdn.net/cqupt_chen/article/details/8364259

  // ZC: 部分(1)
SECURITY_ATTRIBUTES sa= {sizeof(sa),NULL,TRUE};;
sa.bInheritHandle = TRUE; //FILE* fp = fopen("D:\\G_DR_2018\\_G2SVG_Console_VS08\\_G2SVG_Console_VS08\\LOG\\zz.txt", "w+");
HANDLE houtputfile = CreateFileA("D:\\G_DR_2018\\_G2SVG_Console_VS08\\_G2SVG_Console_VS08\\LOG\\zz.txt",
GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, &sa, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

  // ZC: 部分(2)
//#define EXECDOSCMD "dir c:" //可以换成你的命令
#define EXECDOSCMD "_G2SVG_Console_VS08.exe" //可以换成你的命令 char command[]; //长达1K的命令行,够用了吧
strcpy(command,"Cmd.exe /C ");
//strcpy(command,"Cmd.exe ");
strcat(command,EXECDOSCMD);

  // ZC: 部分(3)
STARTUPINFOA si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfoA(&si);
//si.hStdError = fp; //把创建进程的标准错误输出重定向到管道输入
//si.hStdOutput = fp; //把创建进程的标准输出重定向到管道输入
si.hStdError = houtputfile;
si.hStdOutput = houtputfile;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
//关键步骤,CreateProcess函数参数意义请查阅MSDN
if (!CreateProcessA(NULL, command, NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
printf("err01\n");
//CloseHandle(hWrite);
return;
}
//CloseHandle(hWrite); WaitForSingleObject(pi.hProcess, * ); system("pause"); }

3、

4、

5、

VC.重定向标准输出到文件(父进程方式)的更多相关文章

  1. Linux 标准输入输出、错误输出、重定向标准输出

    再来看看 >& 操作符: 重定向操作符 描述 > 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄. < 从文件而不是从键盘或句柄读入命令输入. >& ...

  2. linux: c语言 关闭标准输出STDOUT_FILENO对父子进程的影响

    简介标准 I/O 库(stdio)及其头文件 stdio.h 为底层 I/O 系统调用提供了一个通用的接口.这个库现在已经成为 ANSI 标准 C 的一部分.标准 I/O 库提供了许多复杂的函数用于格 ...

  3. Linux下重要日志文件及查看方式

    http://os.51cto.com/art/201108/282184_all.htm   1.Linux下重要日志文件介绍 /var/log/boot.log 该文件记录了系统在引导过程中发生的 ...

  4. fork出的子进程和父进程的继承关系【转载】

    [原文地址]http://blog.163.com/dengjingniurou@126/blog/static/53989196200962924412524/ fork出的子进程和父进程的继承关系 ...

  5. Python之路(第三十七篇)并发编程:进程、multiprocess模块、创建进程方式、join()、守护进程

    一.在python程序中的进程操作 之前已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起来的python程序 ...

  6. 获取进程ID,父进程ID,进程完整路径

    准备写一个进程管理的功能模块,今天下午先写了扫描获取本机各个进程路径,获取各个进程映像名称,进程完整路径. 要获取进程信息,第一步想到的就是提权,提权代码用过多次了,今天也小结了一下(http://w ...

  7. 文件的概念以及VC里的一些文件操作API简介

    文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文 ...

  8. wait & waitpid 以及子进程传给父进程的信号分析

    wait() 和 waitpid() wait() 系统调用挂起调用进程的执行直到有一个孩子终止.调用 wait(&status) 等价于: waitpid(-1, &status, ...

  9. 用 set follow-fork-mode child即可。这是一个 gdb 命令,其目的是告诉 gdb 在目标应用调用fork之后接着调试子进程而不是父进程,因为在 Linux 中fork系统调用成功会返回两次,一次在父进程,一次在子进程

    GDB的那些奇淫技巧 evilpan 收录于 Security  2020-09-13  约 5433 字   预计阅读 11 分钟  709 次阅读  gdb也用了好几年了,虽然称不上骨灰级玩家,但 ...

随机推荐

  1. redis发布订阅、事务、脚本

    Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 cha ...

  2. vmvare安装vmtools菜单灰色

    光驱和各种驱动器改为自动检测 将vmvaretools.gz文件解压 tar xvf vm...gz 然后进程解压目录运行 sudo ./vmware-install.pl 然后重启 reboot 这 ...

  3. java Quartz定时器任务与Spring 的实现

    1.xml配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:/ ...

  4. AD域与外部网站域名相同处理办法

    环境 域控:Windows Server 2008 r2 AD域:example.cn 问题:DNS可以正常解析外部域名(如www.baidu.com),但是无法解析mail.example.cn 原 ...

  5. latex 参考文献

    https://blog.csdn.net/garfielder007/article/details/51628565 https://www.cnblogs.com/BUAAdaozhong/p/ ...

  6. 关于PChar(@string)的疑惑

    看到一篇博客关于讲Delphi中MOVE的例子,心生疑惑.记录下自己的实验,虽然我也不知道这是啥... program Project1; {$APPTYPE CONSOLE} uses SysUti ...

  7. 0003-20180422-自动化第三章-python基础学习笔记

    3章 内容回顾: 1. 计算机组成 2. 程序编译器 3. 变量 4. 条件 5. 循环 6. py2与py3区别 - 默认编码, - 除法, - input ,raw_input 7. 位,字节关系 ...

  8. OC OD介绍

    参考:http://www.elecfans.com/baike/bandaoti/jichuzhishi/20100304178298.html OC门,又称集电极开路门,Open Collecto ...

  9. 2019最新WEB前端开发小白必看的学习路线(附学习视频教程)

    2019最新WEB前端开发小白必看的学习路线(附学习视频教程).web前端自学之路:史上最全web学习路线,HTML5是万维网的核心语言,标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次 ...

  10. qt, connect参数,Qt::DirectConnection,Qt::QueuedConnection

    connect用于连接qt的信号和槽,在qt编程过程中不可或缺.它其实有第五个参数,只是一般使用默认值,在满足某些特殊需求的时候可能需要手动设置. Qt::AutoConnection: 默认值,使用 ...